ich habe seit 2 Wochen angefangen mich mit dem Thema openHAB zu beschäftigen. Verzeiht mir deshalb meine Unwissenheit

Ein paar einfache Sachen funktionieren schon: Sonoff Wandschalter An/Aus, das ganze auch über die Oberfläche und über Alexa..., yahoo weather, openhabcloud, astro
Meine Geräte die rumstanden, und zufällig ein Binding für OpenHAB besitzen sind eingebunden (AmazonDash Button, DVD Player, TV, Bose Box) und können aktuell mehr schlecht als recht gesteuert werden - dazu gleich mehr...
Zusätzlich habe ich mir einen kleinen IR-Sender auf ESP8266-Basis gebastelt, der über HTTP Posts beliebige IR- und 433 Mhz-Signale verschicken kann.
Anfangs habe ich meine Items über die PaperUI angelegt. Nachdem ich keinen sinnvollen Weg des Backups gefunden habe, und ich sowieso lieber code als klicke, ist alles nach und nach in die jeweiligen Config-Files gewandert

Soviel vorneweg:

- Mein TV kann via Binding nur OFF geschalten werden. Das Binding liefert aber den aktuellen Status des TV zuverlässig zurück. (TV_POWER)
- Via selbstbau IR ("multicontroller") kann ich ON und OFF schalten - habe aber keinen Rückkanal/Status. (esp8266_TV_ONOFF)
- Via Fernbedienung gilt das gleiche
Ich habe also 3 Möglichkeiten zu schalten, wobei eine den aktuellen Status repräsentiert und dafür sorgen soll, dass der Status der jeweils anderen "richtig" gesetzt wird - natürlich ohne zu schalten

Ich bin jetzt auf der Suche nach einer Lösung (am besten ein halbwegs allgemein gültiges Pattern

a) dafür sorgt, dass ich auf der Sitemap einen einzigen Schalter für den TV habe, der den aktuellen Status anzeigt und in beide Richtungen schaltbar ist

b) dafür sorgt, dass - egal wie der TV bedient wird - dieser Schalter den korrekten Status anzeigt
c) fürs schalten des TVs benutzt werden kann.
Ich denke mal ich bin der Hunderste mit dieser Problemstellung, deshalb vermute ich, dass es hier bereits ein sinnvolles pattern zur Lösung gibt und ich nur zu doof zum finden bin

Vielen Dank für eure Hinweise zum Algorithmus
folgendes habe ich implementiert:
*.items
Code: Alles auswählen
//Switch am samsungtv-binding, mit korrektem Rückgabestatus
Switch TV_Power "Power" { channel="samsungtv:tv:livingroom:power"}
//Switch am "multicontroller" - Status ist falsch, wenn über Fernbedienung eingeschalten wird...
//hier hätte ich gerne ein automatisches Update, wenn TV_Power mekt, dass der TV angeschalten wurde
//aber ohne, dass der Schaltvorgang "sendIRCommand.apply() von esp8266_TV_ONOFF erneut ausgeführt wird
Switch esp8266_TV_ONOFF "Fernseher, Samsung" (LivingRoom) [ "Switchable" ] { autoupdate="false" }
Code: Alles auswählen
/************** Samsung TV **************/
rule "virtual - Samsung TV - OnOff"
when
Item esp8266_TV_ONOFF received command
then
logInfo("esp8266_TV_ONOFF", "Command was " + receivedCommand.toString)
if (receivedCommand == ON)
{
if(TV_Power.state != ON /*Not Already runnning*/) {
sendIRCommand.apply("samsung", "E0E040BF")
}
else { logInfo("TV", "already on")}
}
else{
if(TV_Power.state != OFF /*Not already off*/) {
sendIRCommand.apply("samsung", "E0E040BF")}
else { logInfo("TV", "already off")}
}
end
