Update der Schalter
-
- Beiträge: 76
- Registriert: 8. Jun 2020 17:31
Update der Schalter
Hallo Forum,
nachdem mir gestern der Supergau passierte habe ich nun angefangen alles auf OH4 einzustellen.
Die Konfiguration habe ich komplett für Weboberfläche vorgenommen. Ich kann via BasicUI und der Admin Seite einzelne aktionen Steuern.
Ich würde gerne nun aber die Stellung der Schalter wie ich das kenne gerne wieder auslesen.
Dazu fand ich etwas mit addmeta daten autoupdate aber es passiert nichts. (habe in items alle Steckdosen dazu auf autoudate gestellt)
hat jemand dazu eine Idee?
danke
nachdem mir gestern der Supergau passierte habe ich nun angefangen alles auf OH4 einzustellen.
Die Konfiguration habe ich komplett für Weboberfläche vorgenommen. Ich kann via BasicUI und der Admin Seite einzelne aktionen Steuern.
Ich würde gerne nun aber die Stellung der Schalter wie ich das kenne gerne wieder auslesen.
Dazu fand ich etwas mit addmeta daten autoupdate aber es passiert nichts. (habe in items alle Steckdosen dazu auf autoudate gestellt)
hat jemand dazu eine Idee?
danke
- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Update der Schalter
Zu wenig Information und eventuell ein falscher Gedanke 
Welche Addons verwendest Du?
Bezüglich autoupdate: Dieser Parameter steuert lediglich, ob ein von openHAB gesendetes Kommando unmittelbar zu einer Aktualisierung des entsprechenden Status führt.
Beispiel:
Ich habe eine per mqtt angebundene "WLAN Steckdose"
, Thing in einer things-Datei:
Und das passende Item dazu:
Schalte ich die Steckdose per ON Befehl ein, so sendet das Item ON an den Channel, der den Befehl an mqtt Topic cmnd/socket1/POWER sendet. Die Steckdose reagiert, indem sie einschaltet und den neuen Zustand über Topic stat/socket1/POWER sendet. openHAB empüfängt das ON der Steckdose und sendet das Update an das Item, welches daraufhin seinen Zustand auch auf ON setzt.
Nun mit
Schalte ich die Steckdose per ON Befehl ein, so sendet das Item ON an den Channel, der den Befehl an mqtt Topic cmnd/socket1/POWER sendet.
Unmittelbar anschließend setzt openHAB von sich aus den Zustand des Items auf ON, weil das der vermutete neue Zustand ist. Ob die Steckdose geschaltet hat, ist irrelevant.
Nur mit autoupdate="false" habe ich also immer den tatsächlichen Zustand der Steckdose im Item (unter der Voraussetzung, dass ich das Item nicht anderweitig manipuliere).

Welche Addons verwendest Du?
Bezüglich autoupdate: Dieser Parameter steuert lediglich, ob ein von openHAB gesendetes Kommando unmittelbar zu einer Aktualisierung des entsprechenden Status führt.
Beispiel:
Ich habe eine per mqtt angebundene "WLAN Steckdose"

Code: Alles auswählen
Bridge mqtt:broker:mosquitto "Mosquitto" [
// Ballast...
] {
Thing topic socket1 "Steckdose 1" [
// mehr Ballast
] {
Channels:
Type switch : ch1 "Schaltkanal" [ commandTopic="cmnd/socket1/POWER", stateTopic="stat/socket1/POWER" ]
}
}
Code: Alles auswählen
Switch Steckdose1 "Steckdose 1" {channel="mqtt:topic:mosquitto:socket1:ch1", autoupdate="false"}
Nun mit
Code: Alles auswählen
Switch Steckdose1 "Steckdose 1" {channel="mqtt:topic:mosquitto:socket1:ch1", autoupdate="true"}
Unmittelbar anschließend setzt openHAB von sich aus den Zustand des Items auf ON, weil das der vermutete neue Zustand ist. Ob die Steckdose geschaltet hat, ist irrelevant.
Nur mit autoupdate="false" habe ich also immer den tatsächlichen Zustand der Steckdose im Item (unter der Voraussetzung, dass ich das Item nicht anderweitig manipuliere).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 76
- Registriert: 8. Jun 2020 17:31
Re: Update der Schalter
Oh Addons, gar keine
autoupdate auf false gesetzt.
viele dank
autoupdate auf false gesetzt.
viele dank
-
- Beiträge: 76
- Registriert: 8. Jun 2020 17:31
Re: Update der Schalter
nach der entsprechenden Änderung von autoupdate auf false wird die Info ob der Schalter auf On oder Off steht nicht verarbeitet.
sitemap
items
things
wo mache ich meinen Fehler oder dauert es vom System solange?
danke
sitemap
Code: Alles auswählen
Frame {
Text label="Lennox Zimmer" icon="boy_1" {
Switch item=KidsRoom1_Power icon="light" label="Schreibtisch"
}
}
Code: Alles auswählen
Switch KidsRoom1_Power "Schreibtisch" <light> (LennoxRoom, gPower) ["Switch", "Switchable"] {channel="mqtt:topic:mqttbroker:lennox_licht1:POWER", autoupdate="false", ga="Switch"}
Code: Alles auswählen
Thing topic lennox_licht1 "Schreibtisch" @ "Lennox" {
Channels:
Type switch : POWER [ stateTopic="tele/lennox_licht1/STATE", commandTopic="cmnd/lennox_licht1/POWER", on="ON", off="OFF" ]
}
danke
- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Update der Schalter
Erstens: Lass bitte on="ON" und off="OFF" weg, das ist die Default Payload.
Zweitens: Bitte setze das korrekte stateTopic, das ist stat/lennox_licht1/POWER und nicht das tele-Topic. tele wird zyklisch gesendet (alle fünf Minuten, wenn das in Tasmota nicht anders konfiguriert wird). Du willst nicht fünf Minuten auf den Status warten (oder durchschnittlich 150 Sekunden) .
"Nachteil" des stat-Topics: es kommt nur, wenn ein Schaltbefehl gesendet wird. Das bedeutet, wenn Du openHAB neu startest, weiß openHAB nicht, welchen Status das Item hat (bis Du einmal schaltest).
Lösung: eine kleine Rule:
Die Rule sendet einen leeren Befehl an das Topic cmnd/Tasmotas/POWER. Gewöhnlich lauschen alle mittels Tasmota geflashten Geräte auf dieses Topic und führen den betreffenden Befehl dann alle aus. Da kein Kommando gesendet wird, antwortet Tasmota mit dem aktuellen Status (über das Standard Topic stat/DeviceTopic/POWER). Der Broker empfängt alle Statusmeldungen und sendet sie an openHAB weiter, schwups sind alle aktuellen Status auf einen Schlag eingelesen 
Genauso kann man übrigens auch alle Devices auf einen Schlag mit einer neuen Einstellung versehen (sofern diese für alle Devices gleich sein soll - z.B. per Backlog die SSID und das zugehörige Passwort tauschen, oder den Timeserver setzen, eine neue Firmware installieren usw.)
Platt gesagt ist Tasmota nicht nur genial einfach, sondern auch einfach genial
Zweitens: Bitte setze das korrekte stateTopic, das ist stat/lennox_licht1/POWER und nicht das tele-Topic. tele wird zyklisch gesendet (alle fünf Minuten, wenn das in Tasmota nicht anders konfiguriert wird). Du willst nicht fünf Minuten auf den Status warten (oder durchschnittlich 150 Sekunden) .
"Nachteil" des stat-Topics: es kommt nur, wenn ein Schaltbefehl gesendet wird. Das bedeutet, wenn Du openHAB neu startest, weiß openHAB nicht, welchen Status das Item hat (bis Du einmal schaltest).
Lösung: eine kleine Rule:
Code: Alles auswählen
rule "get all states of tasmota Devices"
when
System started
then
val actionsMqtt = getActions("mqtt","mqtt:broker:mybroker") // korrekte UID des Brokers eintragen!
actionsMqtt.publishMQTT("cmnd/Tasmotas/POWER","")
end

Genauso kann man übrigens auch alle Devices auf einen Schlag mit einer neuen Einstellung versehen (sofern diese für alle Devices gleich sein soll - z.B. per Backlog die SSID und das zugehörige Passwort tauschen, oder den Timeserver setzen, eine neue Firmware installieren usw.)
Platt gesagt ist Tasmota nicht nur genial einfach, sondern auch einfach genial

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 76
- Registriert: 8. Jun 2020 17:31
Re: Update der Schalter
Hallo, nun hatte ich mal wieder etwas zeit und probierte da mit den Regeln.
aber die basic ui hat das nicht verarbeitet.
lars
Code: Alles auswählen
rule "CheckDevices"
when
System started
then
val actionsMqtt = getActions("mqtt","mqtt:broker:mqttbroker") // korrekte UID des Brokers eintragen!
actionsMqtt.publishMQTT("cmnd/balkon_wlandose/POWER","")
actionsMqtt.publishMQTT("cmnd/bad_wlandose/POWER","")
actionsMqtt.publishMQTT("cmnd/lennox_licht1/POWER","")
actionsMqtt.publishMQTT("cmnd/lennox_licht2/POWER","")
actionsMqtt.publishMQTT("cmnd/lennox_luefter/POWER","")
actionsMqtt.publishMQTT("cmnd/lennox_netzwerk1/POWER","")
actionsMqtt.publishMQTT("cmnd/colin_licht1/POWER","")
actionsMqtt.publishMQTT("cmnd/colin_licht2/POWER","")
actionsMqtt.publishMQTT("cmnd/colin_luefter/POWER","")
actionsMqtt.publishMQTT("cmnd/colin_netzwerk1/POWER","")
actionsMqtt.publishMQTT("cmnd/wohnzimmer_stehlampe/POWER","")
actionsMqtt.publishMQTT("cmnd/wohnzimmer_blume/POWER","")
actionsMqtt.publishMQTT("cmnd/wohnzimmer_highboard/POWER","")
actionsMqtt.publishMQTT("cmnd/wohnzimmer_dyson/POWER","")
actionsMqtt.publishMQTT("cmnd/kuechen_geraete1/POWER","")
actionsMqtt.publishMQTT("cmnd/kueche_microwelle/POWER","")
actionsMqtt.publishMQTT("cmnd/kuechen_kaffeemaschinen/POWER","")
actionsMqtt.publishMQTT("cmnd/schlafzimmer_tv/POWER","")
end
Code: Alles auswählen
cmnd/balkon_wlandose/POWER (null)
cmnd/bad_wlandose/POWER (null)
cmnd/lennox_licht1/POWER (null)
cmnd/lennox_licht2/POWER (null)
cmnd/lennox_luefter/POWER (null)
cmnd/lennox_netzwerk1/POWER (null)
cmnd/colin_licht1/POWER (null)
cmnd/colin_licht2/POWER (null)
cmnd/colin_luefter/POWER (null)
cmnd/colin_netzwerk1/POWER (null)
cmnd/wohnzimmer_stehlampe/POWER (null)
cmnd/wohnzimmer_blume/POWER (null)
cmnd/wohnzimmer_highboard/POWER (null)
cmnd/wohnzimmer_dyson/POWER (null)
cmnd/kuechen_geraete1/POWER (null)
cmnd/kueche_microwelle/POWER (null)
cmnd/kuechen_kaffeemaschinen/POWER (null)
cmnd/schlafzimmer_tv/POWER (null)
stat/colin_licht1/RESULT {"POWER":"OFF"}
stat/colin_licht1/POWER OFF
stat/lennox_licht1/RESULT {"POWER":"OFF"}
stat/lennox_licht1/POWER OFF
stat/kueche_microwelle/RESULT {"POWER":"ON"}
stat/kueche_microwelle/POWER ON
stat/colin_licht2/RESULT {"POWER":"OFF"}
stat/colin_licht2/POWER OFF
stat/schlafzimmer_tv/RESULT {"POWER":"ON"}
stat/schlafzimmer_tv/POWER ON
stat/bad_wlandose/RESULT {"POWER":"ON"}
stat/bad_wlandose/POWER ON
stat/colin_luefter/RESULT {"POWER":"OFF"}
stat/colin_luefter/POWER OFF
stat/kuechen_kaffeemaschinen/RESULT {"POWER":"ON"}
stat/kuechen_kaffeemaschinen/POWER ON
stat/wohnzimmer_stehlampe/RESULT {"POWER":"OFF"}
stat/wohnzimmer_stehlampe/POWER OFF
stat/lennox_netzwerk1/RESULT {"POWER":"ON"}
stat/lennox_netzwerk1/POWER ON
stat/colin_netzwerk1/RESULT {"POWER":"ON"}
stat/colin_netzwerk1/POWER ON
stat/kuechen_geraete1/RESULT {"POWER":"ON"}
stat/kuechen_geraete1/POWER ON
stat/lennox_licht2/RESULT {"POWER":"OFF"}
stat/lennox_licht2/POWER OFF
stat/wohnzimmer_highboard/RESULT {"POWER":"OFF"}
stat/wohnzimmer_highboard/POWER OFF
stat/wohnzimmer_dyson/RESULT {"POWER":"OFF"}
stat/wohnzimmer_dyson/POWER OFF
lars
- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Update der Schalter
Warum sendest Du direkt an jedes einzelne Topic? Wie gesagt, es reicht ein Befehl, der alle Tasmotas auf einen Schlag anspricht.
openHAB liest das commandTopic nicht ein, sondern ausschließlich das stateTopic. cmnd/blah/POWER ist kein stateTopic, Du musst stat/blah/POWER abfragen.
Ändere erst mal alle Things entsprechend ab, also als Beispiel
openHAB liest das commandTopic nicht ein, sondern ausschließlich das stateTopic. cmnd/blah/POWER ist kein stateTopic, Du musst stat/blah/POWER abfragen.
Ändere erst mal alle Things entsprechend ab, also als Beispiel
Code: Alles auswählen
Thing topic lennox_licht1 "Schreibtisch" @ "Lennox" {
Channels:
Type switch : ch1 [ stateTopic="stat/lennox_licht1/POWER", commandTopic="cmnd/lennox_licht1/POWER" ]
}
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 76
- Registriert: 8. Jun 2020 17:31
Re: Update der Schalter
OK dann habe ich es nun verstanden, beim schalten habe ich mal auf die konsole geachtet und es kam
18:50:11.727 MQT: stat/zimmer_tv/RESULT = {"POWER":"OFF"}
18:50:11.732 MQT: stat/zimmer_tv/POWER = OFF
und nicht tele.
und die Regel habe ich auch noch geändert nach Tasmotas
danke
18:50:11.727 MQT: stat/zimmer_tv/RESULT = {"POWER":"OFF"}
18:50:11.732 MQT: stat/zimmer_tv/POWER = OFF
und nicht tele.
und die Regel habe ich auch noch geändert nach Tasmotas
danke