Anfänger: Gerät aus mehreren Quellen steuern, trotzdem aktuellen Status anzeigen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
schelm
Beiträge: 1
Registriert: 20. Feb 2018 19:13
Answers: 0

Anfänger: Gerät aus mehreren Quellen steuern, trotzdem aktuellen Status anzeigen

Beitrag von schelm »

Hallo,
ich habe seit 2 Wochen angefangen mich mit dem Thema openHAB zu beschäftigen. Verzeiht mir deshalb meine Unwissenheit :D
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 :) Außerdem gibt es einige wenige lambdas, die doppelten Code soweit möglich vermeide sollen.

Soviel vorneweg: :arrow: Jetzt zu meinem eigentlichem Problem:
- 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 :idea: ) welches:
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 :roll:
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" }
*.rules

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
Ziel soll dann irgendwann sein, das komplette HiFi-Setup + TV + Licht via Dash-Button in den DVD-Abend-Modus zu vesetzen - mit Rücksicht darauf, was schon an war, gedimmt ist, etc... :)

ibot1989
Beiträge: 99
Registriert: 30. Jul 2016 19:51
Answers: 0
Wohnort: östlich von Hamburg, südlich von Lübeck, nördlich von Geesthacht

Re: Anfänger: Gerät aus mehreren Quellen steuern, trotzdem aktuellen Status anzeigen

Beitrag von ibot1989 »

Du schriebst du hast dein TV via Binding abgebunden. Um welches Binding handelt es sich den?

Zweiter Lösungsweg: hat dein TV eine Netzwerkschnittstelle?
Dann könntest du aus OpenHAB dein TV Pingen und so mitbekommen das er eingeschaltet ist.

Gruß iBot

Gesendet von meinem ONE A2003 mit Tapatalk


Antworten