[GELÖST] Logging von Gruppenmitgliedern

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
oliverbaush
Beiträge: 24
Registriert: 4. Jan 2022 23:01
Answers: 0
Wohnort: Aschaffenburg

[GELÖST] Logging von Gruppenmitgliedern

Beitrag von oliverbaush »

Moin zusammen,

wir haben unterschiedliche Solltemperaturen in der Wohnung. Dazu gibt es je Solltemperatur eine Gruppe, in die ich die Items "Solltemperatur" entsprechend eingetrichet sind. Über eine Rule wird mit einem SendCommand das ganze gesetzt. Soweit so gut.

Jetzt würde ich gerne im Logfile sehen welche Mitglieder in einer Gruppe sind, ohne die Items statisch zu hinterlegen. Wie kommt man an die Info ran?

Code: Alles auswählen

var soll22 = 22+offset
var soll23 = 23+offset
var soll24 = 24+offset

if (away == "OFF"){
  tmp22 = itemRegistry.getItem('Thermostat22').getState();
  tmp23 = itemRegistry.getItem('Thermostat23').getState();
  tmp24 = itemRegistry.getItem('Thermostat24').getState();
  if (tmp22 != soll22){
    events.sendCommand('Thermostat22', 22+offset );
    logger.info("Gruppe Thermostat22 auf " + soll22 + "°C gesetzt");
    // hier sollte eigentlich ermittelt werden, welche items in der Gruppe sind
    //logger.info("Heizung Wohnzimmer hochgefahren auf " + soll22 + "°C");
    //logger.info("Heizung Bad hochgefahren auf " + soll22 + "°C" );
    //logger.info("Heizung Flur hochgefahren auf " + soll22 + "°C");
    //logger.info("Heizung Küche hochgefahren auf " + soll22 + "°C");
  }
Zuletzt geändert von oliverbaush am 17. Jan 2023 19:39, insgesamt 1-mal geändert.
openHAB4.3.1, installiert unter openhabian

Harka
Beiträge: 489
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Logging von Gruppenmitgliedern

Beitrag von Harka »

Moin,
Du ermittelst die Gruppen des Items (das Thing zählt auch), durchläufts sie mit einer Suche (hier nach "g_" für Gruppe) und anschließend lässt Du alle Mitglieder der Gruppe auflisten.

Code: Alles auswählen

Ausloeser = event.itemName;
Gruppen = Java.from(itemRegistry.getItem(Ausloeser).getGroupNames());
for (var i_index in Gruppen) {
  i = Gruppen[i_index];
  if (i.indexOf('g_') + 1 > 0) {
    // logger.warn(i);
    var j_list = Java.from(itemRegistry.getItem(i).members);
    for (var j_index in j_list) {
      j = j_list[j_index];
      logger.warn(j.getName());
    }
  }
}

oliverbaush
Beiträge: 24
Registriert: 4. Jan 2022 23:01
Answers: 0
Wohnort: Aschaffenburg

[Gelöst] Re: Logging von Gruppenmitgliedern

Beitrag von oliverbaush »

Harka hat geschrieben: 15. Jan 2023 15:14 Du ermittelst die Gruppen des Items (das Thing zählt auch), durchläufts sie mit einer Suche (hier nach "g_" für Gruppe) und anschließend lässt Du alle Mitglieder der Gruppe auflisten.
Moin Harka,
danke, ich hatte bei Blockly gespickt. Die Iteration ist tatsächlicht die Lösung :-)

Code: Alles auswählen

  var Raum22_list = Java.from(itemRegistry.getItem('Thermostat22').members);
  var Raum22;
  soll22 = 22+offset
  tmp22 = itemRegistry.getItem('Thermostat22').getState();
  
  if (tmp22 != soll22){
    events.sendCommand('Thermostat22', soll22);
    for (var Raum22_index in Raum22_list) {
      Raum22 = Raum22_list[Raum22_index];
      logger.info(Raum22.getName() + "auf " + soll22 + " °C gesetzt");
    }
  }
openHAB4.3.1, installiert unter openhabian

Antworten