Thermostate ausgeben die nicht im Automatikmodus laufen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
toto1975
Beiträge: 49
Registriert: 8. Jan 2016 10:47
Answers: 1

Thermostate ausgeben die nicht im Automatikmodus laufen

Beitrag von toto1975 »

Hallo in die Runde,

ich habe ein Problem mit einer Regel die ich benötige um einen Item die Thermostate mitzuteilen die nicht im Automatikmodus laufen.

Code: Alles auswählen

import org.openhab.core.library.types.*
import org.openhab.core.persistence.*
import org.openhab.model.script.actions.*
import org.joda.time.*


var String myString=""

rule "autoliste"
when
    Item Heiz_Auto changed
then
logInfo("FILE", "Rule 'autoliste' started") //Anzeige im Log
    myString=""
    Heiz_Auto.filter(s | s.state == off).forEach(th | myString = myString + th.name + ", ")
    auto.postUpdate(myString.left(myString.length()-2))
logInfo("FILE", "Rule 'autoliste' completed") //Anzeige im Log
end
Als Fehler bekomme ich in der Anzeige

Code: Alles auswählen

Error during the execution of rule 'autoliste': The name '<XMemberFeatureCallImplCustom>.membrers' cannot be resolved to an item or type.
Leider finde ich den Fehler nicht. Hat hier jemand einen Tipp?

Viele Grüße
Torsten

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: Thermostate ausgeben die nicht im Automatikmodus laufen

Beitrag von seppy »

Hi toto1975,

was ist den
"auto"
? Und was genau möchtest Du damit erreichen? Willst Du die entsprechenden Items im Automode anzeigen?

Ich gehe davon aus, das Heiz_Auto eine Gruppe ist, oder? MIt ein paar mehr Infos können wir Dir evtl helfen.

Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

toto1975
Beiträge: 49
Registriert: 8. Jan 2016 10:47
Answers: 1

Re: Thermostate ausgeben die nicht im Automatikmodus laufen

Beitrag von toto1975 »

Hallo Seppy,

vielen Dank für die schnelle Antwort.

"auto" ist ein String Item was als Inhalt die Variable MyString enthalten soll. Dort sollen alle Thermostate aufgelistet werden die nicht im Automodus laufen, also Switch = Off.

Die Items sehen so aus:
Switch Heiz_Auto_Wohnzimmer
"Wohnzimmer"
(Heiz_Auto)

Switch Heiz_Auto_Kinderzimmer
"Kinderzimmer"
(Heiz_Auto)
usw.

Heiz_Auto ist also eine Gruppe wo alle Thermostate enthalten sind.
Sorry, ich sollte vielleicht meine Items und Variablen etwas aussagekräftiger benennen ;-)

Habe ich noch was vergessen?

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: Thermostate ausgeben die nicht im Automatikmodus laufen

Beitrag von seppy »

Hmm also was auf den ersten Blick seltsam aussieht ist Deine Schleife. Members fehlt meiner Meinung nach auf jeden Fall:

Code: Alles auswählen

rule "autoliste"
when
    Item Heiz_Auto changed
then
    logInfo("FILE", "Rule 'autoliste' started") //Anzeige im Log
    myString=""
    Heiz_Auto.members.filter(s | s.state == off).forEach(th | myString = myString + th.name + ", ")
    auto.postUpdate(myString.left(myString.length()-2))
    logInfo("FILE", "Rule 'autoliste' completed") //Anzeige im Log
end
Versuch mal so, wenn das auch Probleme macht. Würde ich erstmal die Schleife ohne Filter bauen und dann im zweiten Schritt nach der Einschränkung schauen. Also

Code: Alles auswählen

Heiz_Auto.members.forEach(th | myString = myString + th.name + ", ")
    auto.postUpdate(myString.left(myString.length()-2))
    logInfo("FILE", "Rule 'autoliste' completed") //Anzeige im Log
Ich würde auch in der Schleife nur den String bauen und im Anschluss nur ein Update fahren. Teste erstmal den ersten Punkt und melde Dich doch nochmal!

Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

toto1975
Beiträge: 49
Registriert: 8. Jan 2016 10:47
Answers: 1

Re: Thermostate ausgeben die nicht im Automatikmodus laufen

Beitrag von toto1975 »

seppy hat geschrieben:Members fehlt meiner Meinung nach auf jeden Fall:

Code: Alles auswählen

rule "autoliste"
when
    Item Heiz_Auto changed
then
    logInfo("FILE", "Rule 'autoliste' started") //Anzeige im Log
    myString=""
    Heiz_Auto.members.filter(s | s.state == off).forEach(th | myString = myString + th.name + ", ")
    auto.postUpdate(myString.left(myString.length()-2))
    logInfo("FILE", "Rule 'autoliste' completed") //Anzeige im Log
end
Das ist die Lösung, vielen Dank für die Hilfe

Viele Grüße
Torsten

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: Thermostate ausgeben die nicht im Automatikmodus laufen

Beitrag von seppy »

Gerne


Sent from my iPhone using Tapatalk
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

Antworten