Item Aktualisieren wenn 2 item auf einem Channel.
-
- Beiträge: 490
- Registriert: 6. Jan 2021 18:05
Item Aktualisieren wenn 2 item auf einem Channel.
Moin zusammen.
Ich habe ein Relaisboard, dort habe ich 8 Ausgänge. Diese habe über http Thing und dann 8 Channel verknüpft.
Die Channel habe ich dann halt jeweils 1 Item verknüpft.
Channel 8 ist meine Außensteckdose. Diese funktioniert auch mit "ON/OFF"
Weiter habe ich ein Switch (day) erstellt, welche über eine rule vom Astro Binding geschalten wird.
Das funktioniert auch.
Ich habe nun vom Relais Board Channel 8 auch mit dem day Item verknüpft und auf Profil folgen geklickt....
Die Steckdose wurde ordnungsgemäß ein und ausgeschalten, (über das day Item)
Aber: das eigentliche Item der Steckdose wurde dabei nicht aktualisiert.
Dies ist demnach auf dem Halbpanel und in der sitemap falsch dargestellt.
Day ist ON, Relais ist auch ON aber Item Steckdose außen blieb auf OFF....
Kann man dies noch optimieren?
Danke und Gruß
Ich habe ein Relaisboard, dort habe ich 8 Ausgänge. Diese habe über http Thing und dann 8 Channel verknüpft.
Die Channel habe ich dann halt jeweils 1 Item verknüpft.
Channel 8 ist meine Außensteckdose. Diese funktioniert auch mit "ON/OFF"
Weiter habe ich ein Switch (day) erstellt, welche über eine rule vom Astro Binding geschalten wird.
Das funktioniert auch.
Ich habe nun vom Relais Board Channel 8 auch mit dem day Item verknüpft und auf Profil folgen geklickt....
Die Steckdose wurde ordnungsgemäß ein und ausgeschalten, (über das day Item)
Aber: das eigentliche Item der Steckdose wurde dabei nicht aktualisiert.
Dies ist demnach auf dem Halbpanel und in der sitemap falsch dargestellt.
Day ist ON, Relais ist auch ON aber Item Steckdose außen blieb auf OFF....
Kann man dies noch optimieren?
Danke und Gruß
Gruss mad-mike
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)

- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Item Aktualisieren wenn 2 item auf einem Channel.
Die Frage ist, wie der Channel definiert ist. Wichtig ist, dass der Channel bidirektional funktioniert, also nicht nur Schaltbefehle von openHAB zum Relaisboard gesendet werden, sondern da Relaisboard auch die Zustände der Relais aktiv meldet (notfalls, indem openHAB den Zustand zyklisch abfragt).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 490
- Registriert: 6. Jan 2021 18:05
Re: Item Aktualisieren wenn 2 item auf einem Channel.
Feedback vom board gibts noch nicht...
Weiss garnicht wie man dies Umsetzt...
Erstellt habe ich dies Über die UI.
Thing:
Im Channel steht der Wert auf ""Nur Schreiben""
Ich hatte dies schon mal geändert, funktionierte aber nicht.
das Board kann mit einen Status ausgeben, wo ich aber keine Ahnung habe, wie damit umgehen...
unter der IP:
kommt eine solche Tabelle:
Ich habe nunmal auf Lesen und Schreiben geklickt, und einfach mal die IP vom Status.xml in den Channel eingetragen.
Das das nicht funktioniert, war mir vorher klar. Dennoch habe ich es ausprobiert. es muss ja irgendwie noch das Relay 8 rausgefiltert werden??
Gruss
Weiss garnicht wie man dies Umsetzt...

Erstellt habe ich dies Über die UI.
Thing:
Code: Alles auswählen
UID: http:url:0de4fe720f
label: HTTP URL Thing
thingTypeUID: http:url
configuration:
authMode: BASIC
ignoreSSLErrors: false
baseURL: http://192.168.178.199:80
delay: 0
stateMethod: GET
refresh: 30
commandMethod: GET
contentType: application/xml
timeout: 3000
bufferSize: 2048
channels:
- id: km1
channelTypeUID: http:switch
label: km1
description: ""
configuration:
mode: WRITEONLY
onValue: FF0101
offValue: FF0100
commandExtension: "%2$s"
- id: km2
channelTypeUID: http:switch
label: km2
configuration:
mode: WRITEONLY
onValue: FF0201
offValue: FF0200
commandExtension: "%2$s"
- id: km3
channelTypeUID: http:switch
label: km3
configuration:
mode: WRITEONLY
onValue: FF0301
offValue: FF0300
commandExtension: "%2$s"
- id: km4
channelTypeUID: http:switch
label: km4
configuration:
mode: WRITEONLY
onValue: FF0401
offValue: FF0400
commandExtension: "%2$s"
- id: km5
channelTypeUID: http:switch
label: km5
configuration:
mode: WRITEONLY
onValue: FF0501
offValue: FF0500
commandExtension: "%2$s"
- id: km6
channelTypeUID: http:switch
label: km6
configuration:
mode: WRITEONLY
onValue: FF0601
offValue: FF0600
commandExtension: "%2$s"
- id: km7
channelTypeUID: http:switch
label: km7
configuration:
mode: WRITEONLY
onValue: FF0701
offValue: FF0700
commandExtension: "%2$s"
- id: km8
channelTypeUID: http:switch
label: km8
configuration:
mode: READWRITE
onValue: FF0801
offValue: FF0800
stateExtension: 192.168.178.199/status.xml
commandExtension: "%2$s"
- id: last-success
channelTypeUID: http:request-date-time
label: Last Success
configuration: {}
- id: last-failure
channelTypeUID: http:request-date-time
label: Last Failure
configuration: {}
Ich hatte dies schon mal geändert, funktionierte aber nicht.
das Board kann mit einen Status ausgeben, wo ich aber keine Ahnung habe, wie damit umgehen...
unter der IP:
Code: Alles auswählen
http://192.168.178.199/status.xml
Code: Alles auswählen
<response>
<relay0>1</relay0>
<relay1>0</relay1>
<relay2>0</relay2>
<relay3>0</relay3>
<relay4>0</relay4>
<relay5>0</relay5>
<relay6>0</relay6>
<relay7>0</relay7>
<relay8>0</relay8>
</response>
Ich habe nunmal auf Lesen und Schreiben geklickt, und einfach mal die IP vom Status.xml in den Channel eingetragen.
Das das nicht funktioniert, war mir vorher klar. Dennoch habe ich es ausprobiert. es muss ja irgendwie noch das Relay 8 rausgefiltert werden??

Gruss
Gruss mad-mike
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)

- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Item Aktualisieren wenn 2 item auf einem Channel.
ja, Du musst halt die Status-URL mit angeben und den Wert passend parsen. Leider muss dazu auch die Senderichtung umgebaut werden, weil OnValue und OffValue für bei Richtungen gleich sein sollten... Glücklicherweise sind die Änderungen aber "minimal"
Wichtig für den Hinterkopf: der Status wird nur alle 30 Sekunden abgefragt, im ungünstigen Fall könnte also 29 Sekunden lang der falsche Status angezeigt werden. Entweder Du verkürzt das Abfrageinterval (da muss man halt schauen, wie sehr das Board dadurch belastet wird) oder man geht komplett anders an das Problem heran, indem man den Status über eine Rule abfragt, die man dann bei Bedarf ausführt.
Ich habe die Konfiguration bei mir nicht wirklich getestet. Also achte auf Tippfehler meinerseits...

Code: Alles auswählen
UID: http:url:0de4fe720f
label: HTTP URL Thing
thingTypeUID: http:url
configuration:
authMode: BASIC
ignoreSSLErrors: false
baseURL: http://192.168.178.199:80
delay: 0
stateMethod: GET
refresh: 30
commandMethod: GET
contentType: application/xml
timeout: 3000
bufferSize: 2048
channels:
- id: last-failure
channelTypeUID: http:request-date-time
label: Last Failure
configuration: {}
- id: last-success
channelTypeUID: http:request-date-time
label: Last Success
configuration: {}
- id: km1
channelTypeUID: http:switch
label: km1
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF010%2$s
stateTransformation:
- REGEX:.*<relay0>(.)</relay0>.*
- id: km2
channelTypeUID: http:switch
label: km2
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF020%2$s
stateTransformation:
- REGEX:.*<relay1>(.)</relay1>.*
- id: km3
channelTypeUID: http:switch
label: km3
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF030%2$s
stateTransformation:
- REGEX:.*<relay2>(.)</relay2>.*
- id: km4
channelTypeUID: http:switch
label: km4
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF040%2$s
stateTransformation:
- REGEX:.*<relay3>(.)</relay3>.*
- id: km5
channelTypeUID: http:switch
label: km5
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF050%2$s
stateTransformation:
- REGEX:.*<relay4>(.)</relay4>.*
- id: km6
channelTypeUID: http:switch
label: km6
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF060%2$s
stateTransformation:
- REGEX:.*<relay5>(.)</relay5>.*
- id: km7
channelTypeUID: http:switch
label: km7
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF070%2$s
stateTransformation:
- REGEX:.*<relay6>(.)</relay6>.*
- id: km8
channelTypeUID: http:switch
label: km8
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF080%2$s
stateTransformation:
- REGEX:.*<relay7>(.)</relay7>.*
Ich habe die Konfiguration bei mir nicht wirklich getestet. Also achte auf Tippfehler meinerseits...

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 490
- Registriert: 6. Jan 2021 18:05
Re: Item Aktualisieren wenn 2 item auf einem Channel.
Moin,
In der Konfig vom Channel hat sich dann noch eine eckige Klammer mit eingetragen unter:
diese habe ich entfernt...
Kurze info:
Bedeutet relay 1 ist = Status Relay 1
Ob das Item bis zu 30 Sekunden benötigt zum aktualisieren, ist mir eigentlich egal. In der Regel bekomme ich von dem Schaltvorgang gar nichts mit. Das läuft alleine.
Fakt ist, es Funktioniert, Item wird aktualisiert Danke dafür.
PS: Es handelt sich um ein KMTronic WEB Relay Board.
In der Konfig vom Channel hat sich dann noch eine eckige Klammer mit eingetragen unter:
Code: Alles auswählen
Status-Transformation
Kurze info:
Code: Alles auswählen
NOTE: <relay0>0</relay0> Reserved for other function (do not use in user program)
Ob das Item bis zu 30 Sekunden benötigt zum aktualisieren, ist mir eigentlich egal. In der Regel bekomme ich von dem Schaltvorgang gar nichts mit. Das läuft alleine.
Fakt ist, es Funktioniert, Item wird aktualisiert Danke dafür.


PS: Es handelt sich um ein KMTronic WEB Relay Board.
Code: Alles auswählen
UID: http:url:0de4fe720f
label: HTTP URL Thing
thingTypeUID: http:url
configuration:
authMode: BASIC
ignoreSSLErrors: false
baseURL: http://192.168.178.199:80
delay: 0
stateMethod: GET
refresh: 30
commandMethod: GET
contentType: application/xml
timeout: 3000
bufferSize: 2048
channels:
- id: km1
channelTypeUID: http:switch
label: km1
description: ""
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF010%2$s
stateTransformation: REGEX:.*<relay1>(.)</relay1>.*
- id: km2
channelTypeUID: http:switch
label: km2
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF020%2$s
stateTransformation: REGEX:.*<relay2>(.)</relay2>.*
- id: km3
channelTypeUID: http:switch
label: km3
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF030%2$s
stateTransformation: REGEX:.*<relay3>(.)</relay3>.*
- id: km4
channelTypeUID: http:switch
label: km4
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF040%2$s
stateTransformation: REGEX:.*<relay4>(.)</relay4>.*
- id: km5
channelTypeUID: http:switch
label: km5
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF050%2$s
stateTransformation: REGEX:.*<relay5>(.)</relay5>.*
- id: km6
channelTypeUID: http:switch
label: km6
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF060%2$s
stateTransformation: REGEX:.*<relay6>(.)</relay6>.*
- id: km7
channelTypeUID: http:switch
label: km7
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF070%2$s
stateTransformation: REGEX:.*<relay7>(.)</relay7>.*
- id: km8
channelTypeUID: http:switch
label: km8
configuration:
mode: READWRITE
onValue: "1"
offValue: "0"
stateExtension: status.xml
commandExtension: FF080%2$s
stateTransformation: REGEX:.*<relay8>(.)</relay8>.*
- id: last-success
channelTypeUID: http:request-date-time
label: Last Success
configuration: {}
- id: last-failure
channelTypeUID: http:request-date-time
label: Last Failure
configuration: {}
Gruss mad-mike
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)

- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Item Aktualisieren wenn 2 item auf einem Channel.
Das hab ich dann falsch interpretiert


openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet