Sonoff als Master Switch

Geflasht oder ungeflasht ...

Moderatoren: Cyrelian, udo1toni

SoerenKaiser82
Beiträge: 13
Registriert: 29. Jan 2018 22:22
Wohnort: Much / Siegburg

Sonoff als Master Switch

Beitrag von SoerenKaiser82 »

Hallo Zusammen!

Ich bin relativ Neu bei Openhab aber total begeistert.
Inzwischen habe ich Wetter, Astro, Müllabfuhr und diverse Sonoff-Schalter realisiert. Soweit läuf auch alles.

Mein großes Problem ist nun ein einfacher Hauptschalter...
Ich habe im Wohnzimmer einen Sonoff T1 2ch Wandschalter der nur eine Phase schaltet. War eigentlich ein Fehlkauf, bis mir einfiel, dass ich mit der unbenutzten Seite eigentlich alle Geräte beim zubettgehen ausschalten könnte. Die Sache mit "allen" Geräten habe ich nun schon mal weit hinten an gestellt. Aber meine Items( alles Sonoffs) sollten sich ja (relativ leicht???!) mit einer Regel schalten lassen...

Genau da fingen nun meine Intuition und das Halbwissen an mich zu verlassen... Ich habe es mit Node Red & einer Regel versucht, bekomme aber nicht ein Item dazu, auszugehen... Ich werd noch Irre & hoffe mir kann jemand helfen.

Der Ist Zustand:
Alles läuft auf einem Pi mit der IP 192.168.2.125
Mosquitto läuft und funktioniert
Node Red läuft und funktioniert (zumindest die Oberfläche - du UI erscheint trotz Tabs & Links nicht)
alle Items an sich lassen sich via MQTT schalten - auch ein direkter HTML ist möglich
Mqtt Action, exec & http Binding sind installiert.

Sitemap:

Code: Alles auswählen

sitemap Home label="Home"{
    Frame label="Aktuell"{
        Text item=Current_DateTime icon=calendar
        Text item=Temperature icon=temperature
    }
    Text item=WeatherAlertActive label="Unwetterwarnung" icon="alert" labelcolor=[WeatherAlertActive==ON="red"]  visibility=[WeatherAlertActive==ON]  {
			Text item=WeatherAlert 			
			Image label="Regenradar" url="http://www.wetteronline.de/?ireq=true&pid=p_radar_map&src=radar/vermarktung/p_radar_map_forecast/forecastLoop/RHP/latestForecastLoop.gif" 			
		}	
    Frame label="Büro" {
        Switch item=Buero label="Büro Deckenleuchte" icon="light"
    }
    Frame label="Deckenleuchten"{
        Switch item=Wohnzimmerleuchte1 label="Wohnzimmer Deckenleuchte" icon="light"
        Switch item=Wohnzimmerstrahler label="Wohnzimmerstrahler" icon="light"
    }
    Frame label="Wohnzimmer" {
        Switch item=Aquarium label="Aquarium" icon="light"
        Switch item=Vitrine label="Vitrine" icon="light"
        Switch item=Stehlampe label="Stehlampe" icon="light"
        Default item=LivingTemp label="Temperatur Wohnzimmer" icon="temperature"
        Default item=LivingHum label="Luftfeuchtigkeit Wohnzimmer" icon="humidity"
        Default item=AquaTemp label="Temperatur Aquarium" icon="temperature"
        
    }	
    Frame label="Astro"{
        Default item=Season_Name icon=time
    }
    Frame label="Sonnenverlauf"{ 
        Default item=Sunrise_Time icon="sunrise"
        Default item=Sunset_Time icon="sunset"
    }
    Text item=Current_DateTime label="Wetter & Astro [%1$tA, %1$td.%1$tm.%1$tY]" icon="sun_clouds" {
            Frame label="Aktuell" {
                Switch item=Night_State label="Tag / Nacht Status" mappings=[OFF="Tag", ON="Nacht"] icon="sun"
                Text item=Day_Phase icon="sun"
                Text item=Sunrise_Time icon="sunrise" visibility=[Night_State == ON]
                Text item=Sunset_Time icon="sunset" visibility=[Night_State == OFF]
                Text item=Sun_Elevation icon="sunmoon" visibility=[Sun_Elevation > 0]
                Text item=Moon_Elevation icon="sunmoon" visibility=[Moon_Elevation > 0]
                Text item=Zodiac_Sign icon="incline"
                Text item=Moon_Phase
                Text item=Moon_Next_Full icon="fullmoon1"
                    visibility=[Moon_Phase == WAXING_CRESCENT,
                        Moon_Phase == FIRST_QUARTER,
                        Moon_Phase == WAXING_GIBBOUS,
                        Moon_Phase == FULL]
                Text item=Moon_Next_New icon="fullmoon"
                    visibility=[Moon_Phase == WANING_GIBBOUS,
                        Moon_Phase == THIRD_QUARTER,
                        Moon_Phase == WANING_CRESCENT,
                        Moon_Phase == NEW]
            }
    } 
    Frame label="Abfall Kalender" {
		Text item=ABFALL_HEUTE_NAME_ICAL label="Abholung heute: [%s]" icon="muellwagen" visibility=[ABFALL_HEUTE_AKTIV==ON]
		Text item=ABFALL_FOLGT_DATUM label="Naechste Abholung: [%1$td.%1$tm.%1$tY]" icon="calendar" visibility=[ABFALL_FOLGT_AKTIV==ON]
		Text item=ABFALL_FOLGT_NAME_ICAL label="Naechste Abholung: [%s]" icon="muellwagen" visibility=[ABFALL_FOLGT_AKTIV==ON]
	}      
}
Items:

Code: Alles auswählen

Switch Buero "Büro" [ "Lighting" ] { mqtt=">[broker:home/buero/Buero_Licht/cmnd/power:command:*:default],<[broker:home/buero/Buero_Licht/cmnd/power:state:default]"}
Switch Vitrine "Vitrine" [ "Lighting" ] { mqtt=">[broker:home/living/Vitrine/cmnd/power:command:*:default],<[broker:home/living/Vitrine/cmnd/power:state:default]"}
Switch Aquarium "Aquarium" [ "Lighting" ] { mqtt=">[broker:home/living/Aquarium/cmnd/power:command:*:default],<[broker:home/living/Aquarium/cmnd/power:state:default]"}
Switch Wohnzimmerleuchte1 "Wohnzimmer Deckenleuchte" [ "Lighting" ] { mqtt=">[broker:home/living/Wohnzimmerleuchte/cmnd/power1:command:*:default],<[broker:home/living/Wohnzimmerleuchte/cmnd/power1:state:default]"}
Switch Wohnzimmerstrahler "Wohnzimmerstrahler" [ "Lighting" ] { mqtt=">[broker:home/living/Wohnzimmerstrahler/cmnd/power:command:*:default],<[broker:home/living/Wohnzimmerstrahler/cmnd/power:state:default]"}
Number LivingTemp "Temperatur Wohnzimmer [%.1f °C]" <temperature> {mqtt="<[broker:home/living/Stehlampe/SENSOR:state:JSONPATH($.AM2301.Temperature)]"}
Number LivingHum "Luftfeuchtigkeit Wohnzimmer [%.1f%%]" {mqtt="<[broker:home/living/Stehlampe/SENSOR:state:JSONPATH($.AM2301.Humidity)]"}
Number AquaTemp "Temperatur Aquarium [%.1f °C]" <temperature> {mqtt="<[broker:home/living/Aquarium/SENSOR:state:JSONPATH($.DS18B20.Temperature)]"}
Switch Stehlampe "Stehlampe" [ "Lighting" ] { mqtt="<[broker:home/living/Stehlampe/cmnd/power:state:default],
													<[broker:home/living/Stehlampe/STATE:state:JSONPATH($.POWER)],
													>[broker:home/living/Stehlampe/cmnd/power:command:*:default]"}
Switch Wohnzimmerleuchte2 "Wohnzimmer Aus" [ "Lighting" ] { mqtt="<[broker:home/living/Wohnzimmerleuchte/cmnd/power2:state:default],
													<[broker:home/living/Wohnzimmerleuchte/STATE:state:JSONPATH($.POWER)],
													>[broker:home/living/Wohnzimmerleuchte/cmnd/power:command:*:default]"}	
Rules:

Code: Alles auswählen

rule "Master Switch"

when
    Item Wohnzimmerleuchte2 changed
then
    sendHttpGetRequest("http://192.168.2.12/cm?cmnd=Power%20TOGGLE")
else
    sendCommand(Aquaium, OFF)
else
    switch(receivedCommand) {
            case OFF : sendHttpGetRequest("http://192.168.2.12/cm?cmnd=Power%20TOGGLE")
		}
end
Wohnzimmerleuchte2 soll nun Aquarium, Buero, Stehlampe, Wohnzimmerleuchte1, Wohnzimmerstrahler & Vitrine gleichzeitig ausschalten.
Ob nun bei ein oder Aus wäre mir egal, ich habe als Trigger schon item changed, received command & received update OFF versucht.
Super wäre es wenn der Schalter quasi immer beim einschalten aus schaltet und dann auch gleich wieder auf den Zustand "Aus" springt.

Bei der Rule habe ich die Möglichkeiten gemischt um zu zeigen was ich probiert habe. getestet habe ich eine Variante nach der anderen... Leider ohne Erfolg. :(

Ich hoffe Ihr könnt etwas damit anfangen und es fehlt keine wesentliche Info..
Vielen Dank schon mal für Eure Hilfe!! :idea:
Happy IoTing :lol: & viele grüße aus dem bergischen Land!

hr3
Beiträge: 210
Registriert: 23. Mai 2017 21:41

Re: Sonoff als Master Switch

Beitrag von hr3 »

Hallo,
ich denke dein Problem liegt in der Rule-Logik und du brauchst keinen Schalter, sondern einen Taster.
Schau dir mal das Beispiel an. http://www.redgrendel.com/the-doorbell/
Es macht genau das, was du möchtest. Wenn der Taster gedrückt wurde, wird die Rule ausgeführt.
die könnte dann so aussehen:

Code: Alles auswählen

rule "Master OFF"
when
    Item Taster changed from OFF to ON
then
    sendHttpGetRequest("http://192.168.2.12/cm?cmnd=Power%20TOGGLE")
    sendCommand(Aquaium, OFF)
    ...	
end

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Sonoff als Master Switch

Beitrag von udo1toni »

Ein gern genommener Anfänger-Fehler ist die Sache mit dem Schlüsselwort then:

Eine Rule ist in 2 Abschnitte unterteilt, zum einen der Trigger-Teil - unterhalb der Schlüsselwortes when - zum anderen der Execute-Teil - unterhalb des Schlüsselwortes then. In BASIC gibt es die Befehlsfolge IF-THEN-ELSE, weshalb hier gerne die Idee aufkommt, in openHAB Rules wäre lediglich das Wort IF durch das Wort when ersetzt, das ist aber nicht der Fall.
Im Gegenteil gibt es sehr wohl das Schlüsselwort if, und dort gehört das Schlüsselwort else dazu.

Eine vollkommen leere Rule sieht so aus:

Code: Alles auswählen

rule Rulename //Wenn der Rulename Leerzeichen enthalten soll, muss er in Anführungszeichen stehen, ein einzelnes Wort darf so verwendet werden.
when          //Ab hier werden alle Trigger aufgeführt, die zur Ausführung der Rule führen sollen.
then          //Wenn einer der aufgeführten Trigger zutrifft, führe den folgenden Code aus
end           //Ende der Rule
Der Rule Rahmen sieht immer exakt so aus, keines der Schlüsselworte ist optional, keines der Schlüsselworte darf mehrfach vorkommen. Mehrere Trigger werden mit dem Schlüsselwort or voneinander getrennt. Da es sich um Trigger handelt, gibt es kein and, wie man vielleicht auch vermuten könnte.
Innerhalb des Execute-Blocks dürfen beliebig viele Bedingungen verwendet werden, das sieht dann so aus:

Code: Alles auswählen

if(Bedingung1) {
    //Codeblock1
}
else if(Bedingung2) {
    //Codeblock2
}
else {
    //Codeblock3
}
Hier wird exakt einer von drei Codeblöcken ausgeführt. Trifft Bedingung1 zu, wird Codeblock1 ausgeführt - unabhängig von Bedingung2!!! Trifft Bedingung1 nicht zu, aber Bedingung2 trifft zu, wird Codeblock2 ausgeführt. Treffen weder Bedingung1 noch Bedingung2 zu, wird Codeblock3 ausgeführt.
Für Bedingung gilt, dass wir hier immer von Bool'scher Algebra reden. Bedingung kann also entweder true oder false sein, nichts anderes. Damit gibt es dann auch die Möglichkeit, mehrere Bedingungen miteinander zu verknüpfen:

Code: Alles auswählen

if(Bedingung1 || Bedingung2)  //true, wenn mindestens eine der beiden Bedingungen true
if(Bedingung1 && Bedingung2)  //true, wenn beide Bedingungen true
if(!Bedingung1)  //true, wenn Bedingung1 false, genauso
if(Bedingung1 && !Bedingung2)  //true, wenn Bedingung1 true und Bedingung2 false
Die Bool'sche Algebra wird von links nach rechts aufgelöst. Um eine andere Reihenfolge zu erzwingen, wird die Hierarchie mit Klammern markiert:

Code: Alles auswählen

if(Bedingung1 && Bedingung2 || Bedingung3)  //true, wenn Bedingung1 und Bedingung2 true oder Bedingung3 true
if(Bedingung1 && (Bedingung2 || Bedingung3)) //true, wenn Bedingung1 true und mindestens eine der anderen Bedingungen true
Ich schweife ab... ;)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: Sonoff als Master Switch

Beitrag von Cyrelian »

Hi SoerenKaiser82,

ich habe auch einen Sonoff T1 2ch in genau der gleich Konstellation wie du, also nur eine geschaltete Phase. Gelöst hab ich das relativ einfach:

Code: Alles auswählen

rule "EG Flur Sonoff Master" 
when 	Item Taster1 changed
then
    if (Taster1.state==ON)	{
       		Taster2.sendCommand(ON)
			logInfo(filename, "sendCommand Taster2 ON")   
			Taster2.postUpdate(ON)
			logInfo(filename, "postUpdate Taster2 ON")
		Taster3.sendCommand(ON)
			logInfo(filename, "sendCommand Taster3 ON")   
			Taster3.postUpdate(ON)
			logInfo(filename, "postUpdate Taster3 ON")
		Taster4.sendCommand(ON)
			logInfo(filename, "sendCommand Taster4 ON")   
			Taster4.postUpdate(ON)
			logInfo(filename, "postUpdate Taster4 ON")
	}   
  	else if (Taster1.state==OFF)	{
				Taster2.sendCommand(OFF)
				logInfo(filename, "sendCommand Taster2 OFF") 
				Taster2.postUpdate(OFF)
				logInfo(filename, "postUpdate Taster2 OFF")
				Taster3.sendCommand(OFF)
				logInfo(filename, "sendCommand Taster3 OFF") 
				Taster3.postUpdate(OFF)
				logInfo(filename, "postUpdate Taster3 OFF")
				Taster4.sendCommand(OFF)
				logInfo(filename, "sendCommand Taster4 OFF") 
				Taster4.postUpdate(OFF)
				logInfo(filename, "postUpdate Taster4 OFF")
	}
end
CU
Cyrelian

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Sonoff als Master Switch

Beitrag von sihui »

udo1toni hat geschrieben: 1. Mai 2018 11:37 Ich schweife ab... ;)
Nö, am Besten immer weiter so!
Kannst du deine ganzen Tipps nicht mal in einem Blog zusammenfassen? Oder die docs.openhab.org damit ergänzen?
Würde vielen Usern sehr weiterhelfen :D
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

SoerenKaiser82
Beiträge: 13
Registriert: 29. Jan 2018 22:22
Wohnort: Much / Siegburg

Re: Sonoff als Master Switch

Beitrag von SoerenKaiser82 »

Vielen lieben Dank für die Unterstützung und die Tipps!
Ich bin leider den ganzen Tag familiär eingespannt aber ich hoffe ich kann heute Abend eine Rükmeldung geben :)

@udo & cyrelian: ich finde Sihui hat recht. Es gibt eine Menge Dokumentationen und Projekte, nicht nur Hier, auch viel auf englisch aber es fehlt leider oft die Grundlage als Erklärung oder bei einigen evtl auch das englische.. Ich habe viel nachmachen können und etliches durch Logik lösen und verstehen können aber das Verständnis fehlte. Vielen Dank Udo für die Erklärug.. De Schulzeit ist doch lang her.. aber jetzt wo du es sagst fällt es mir auch wieder ein..:)

Mein Vorschlag wären einzelne Themen zu Rules, items, Gruppe. Ist auch ein Riesen Thema.. Alles im Haupmenü mit Erklärungen, Beispielen und dem Sinn dazu.. ich denke das würde sehr vielen Einsteiern & Umsteiern helfen.. vor allem wenn man dann solche Erklärungen von Udo bekommt wär es toll wenn ihr diese in so ein Tema kopieren würdet damit alle Sie direkt finden könnten...
Ich selbst brauche oft Stunden um mir de Logik und das Prinzip zusammen zu googeln um nur eins der Scripte von Seppy oder Euch beiden nachvollziehen zu können..

Nur mal so ein Gedanke für das Forum :)

Liebe Grüße und bis später
Sören
Happy IoTing :lol: & viele grüße aus dem bergischen Land!

SoerenKaiser82
Beiträge: 13
Registriert: 29. Jan 2018 22:22
Wohnort: Much / Siegburg

Re: Sonoff als Master Switch

Beitrag von SoerenKaiser82 »

Nabend zusammen :)

ist etwas später geworden..

Leider läuft es trotz der Tipps noch immer nicht :(
Die Regel habe ich angepasst:

Code: Alles auswählen

rule "Wohnzimmer Aus" 
when 	Item Taster1 changed
then
    if (Taster1.state==ON)	{
       		Auquarium.sendCommand(ON)
			logInfo(filename, "sendCommand Aquarium ON")   
			Aquarium.postUpdate(ON)
			logInfo(filename, "postUpdate Aquarium ON")
		    Stehlampe.sendCommand(ON)
			logInfo(filename, "sendCommand Stehlampe ON")   
			Stehlape.postUpdate(ON)
			logInfo(filename, "postUpdate Stehlampe ON")
		    Vitrine.sendCommand(ON)
			logInfo(filename, "sendCommand Vitrine ON")   
			Vitrine.postUpdate(ON)
			logInfo(filename, "postUpdate Vitrine ON")
	}   
  	else if (Taster1.state==OFF)	{
				Aquarium.sendCommand(OFF)
				logInfo(filename, "sendCommand Aquarium OFF") 
				Aquarium.postUpdate(OFF)
				logInfo(filename, "postUpdate Aquarium OFF")
				Stehlampe.sendCommand(OFF)
				logInfo(filename, "sendCommand Stehlampe OFF") 
				Stehlampe.postUpdate(OFF)
				logInfo(filename, "postUpdate Stehlampe OFF")
				Vitrine.sendCommand(OFF)
				logInfo(filename, "sendCommand Vitrine OFF") 
				Vitrine.postUpdate(OFF)
				logInfo(filename, "postUpdate Vitrine OFF")
	}
end

Das Item für den Master Switch habe ich ebenfalls geändert:

Code: Alles auswählen

Switch Buero "Büro" [ "Lighting" ] { mqtt=">[broker:home/buero/Buero_Licht/cmnd/power:command:*:default],<[broker:home/buero/Buero_Licht/cmnd/power:state:default]"}
Switch Vitrine "Vitrine" [ "Lighting" ] { mqtt=">[broker:home/living/Vitrine/cmnd/power:command:*:default],<[broker:home/living/Vitrine/cmnd/power:state:default]"}
Switch Aquarium "Aquarium" [ "Lighting" ] { mqtt=">[broker:home/living/Aquarium/cmnd/power:command:*:default],<[broker:home/living/Aquarium/cmnd/power:state:default]"}
Switch Wohnzimmerleuchte1 "Wohnzimmer Deckenleuchte" [ "Lighting" ] { mqtt=">[broker:home/living/Wohnzimmerleuchte/cmnd/power1:command:*:default],<[broker:home/living/Wohnzimmerleuchte/cmnd/power1:state:default]"}
Switch Wohnzimmerstrahler "Wohnzimmerstrahler" [ "Lighting" ] { mqtt=">[broker:home/living/Wohnzimmerstrahler/cmnd/power:command:*:default],<[broker:home/living/Wohnzimmerstrahler/cmnd/power:state:default]"}
Number LivingTemp "Temperatur Wohnzimmer [%.1f °C]" <temperature> {mqtt="<[broker:home/living/Stehlampe/SENSOR:state:JSONPATH($.AM2301.Temperature)]"}
Number LivingHum "Luftfeuchtigkeit Wohnzimmer [%.1f%%]" {mqtt="<[broker:home/living/Stehlampe/SENSOR:state:JSONPATH($.AM2301.Humidity)]"}
Number AquaTemp "Temperatur Aquarium [%.1f °C]" <temperature> {mqtt="<[broker:home/living/Aquarium/SENSOR:state:JSONPATH($.DS18B20.Temperature)]"}
Switch Stehlampe "Stehlampe" [ "Lighting" ] { mqtt="<[broker:home/living/Stehlampe/cmnd/power:state:default],
													<[broker:home/living/Stehlampe/STATE:state:JSONPATH($.POWER)],
													>[broker:home/living/Stehlampe/cmnd/power:command:*:default]"}
Item Taster1 "Wohnzimmer Aus" [ "Lighting" ] { mqtt="<[broker:home/living/Wohnzimmerleuchte/cmnd/power2:state:default],
													<[broker:home/living/Wohnzimmerleuchte/STATE:state:JSONPATH($.POWER)],
													>[broker:home/living/Wohnzimmerleuchte/cmnd/power:command:*:default]"}	
Ich denke aber es ist eine Definitionssache des Sonoff. Ich weis das ich Gpio14 gegen ground als Taster konfigurieren kann. Ich habe aber keinen Schimmer wie ich den realen Taster 2 am Sonoff weg vom Schalter zu nem Taster argumentiere & Müssen nun alle Items die geschaltet werden sollen Taster anstelle eines switches sein? :geek:
Happy IoTing :lol: & viele grüße aus dem bergischen Land!

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Sonoff als Master Switch

Beitrag von udo1toni »

Ich habe bisher noch keine SONOFF im Einsatz (es ist aber gerade ein Päckchen unterwegs...) deshalb stochere ich jetzt etwas im Trüben:

Kann SONOFF denn mqtt ohne die alternative Firmware (Tasmota)? Da Du einen freien GPIO verwenden willst, ist es ja fast zwingend, dass Du Tasmota einsetzt. Dagegen spricht allerdings die Item-Konfiguration, denn Tasmota verwendet für die Rückmeldung ein eigenes Topic.

Für einen Taster wirst Du auch kein Command definieren, ein Taster ist mit einem Sensor gleichzusetzen (also readonly, wie z.B. die Temperatur)

Die Rule ist auch etwas doppelt gemoppelt. Im Grunde gibt es zwei sinnvolle Ansätze, zum einen Items, die eine aktive Rückmeldung haben. Dann sollte man auf das postUpdate() verzichten, man will ja den echten Status sehen. Oder man hat Items, die keine aktive Rückmeldung haben. Dann kann man mit der Bindingdefinition autoupdate="true" erzwingen, dass ein sendCommand() den Status des Items mit setzt (das sollte aber ohnehin default sein).

Die logInfo-Anweisungen sind auch eher unsinnig :) logInfo(string,string) erzeugt einen Log-Eintrag in openhab.log (soweit nichts anderes konfiguriert wurde). Ob der Logeintrag erzeugt wird, kann mit dem Loglevel konfiguriert werden. Dazu wird der erste String verwendet. Man kann also für jede Rule getrennt das Logging steuern, indem man innerhalb der Rule jeweils den gleichen String verwendet. es muss aber ein String sein. filename ist kein String, sondern erst mal eine Variable (falls sie definiert ist).

Code: Alles auswählen

logInfo("test","Logeintrag INFO Level")
logWarn("test","Logeintrag WARN Level")
logError("test","Logeintrag ERROR Level")
Jede dieser Zeilen erzeugt einen Logeintrag. Mit

Code: Alles auswählen

log:set ERROR org.eclipse.smarthome.model.script.test
erzeugt nur noch die logError() Zeile einen Eintrag.
Es gibt auch noch

Code: Alles auswählen

logDebug("test","Logeintrag DEBUG Level")
, dazu muss dann der Loglevel auf DEBUG gesetzt werden.

Der erste Schritt sollte sein, die korrekten Topics pro Item zu konfigurieren. Dann müssen die SONOFFs auf Schaltbefehle aus openHAB heraus reagieren (dazu legst Du in einer Sitemap für jedes Item ein Switch Widget an).
Für den Tasterkanal muss entsprechend auch ein Item angelegt werden. Da dieser Kanal per Definition readonly ist,solltest Du hier auch ein Text Widget anlegen.

Es gibt leider momentan einen Bug in openHAB, der dazu führt, dass die Basic UI nicht korrekt den momentanen Zustand anzeigt, wenn die Sitemap bearbeitet wurde. Das bedeutet, Du solltest openHAB einmal neu starten, nachdem Du die Sitemap erstellt hast.

Alternativ kannst Du aber auch in der Konsole des Pi ein

Code: Alles auswählen

tail -f /var/log/openhab2/events.log
starten. Damit siehst Du alle Events fortlaufend, also, ob sich das Taster-Item ändert, wenn Du den Taster drückst usw.
Wenn die Items funktionieren, ist die passende Rule, um mit einem Tastendruck viele Geräte zu schalten nur noch eine Fingerübung. Aber auch hier gibt es wesentlich elegantere Ansätze, als stumpf jedes Item aufzulisten, welches geschaltet werden soll. :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

SoerenKaiser82
Beiträge: 13
Registriert: 29. Jan 2018 22:22
Wohnort: Much / Siegburg

Re: Sonoff als Master Switch

Beitrag von SoerenKaiser82 »

Nabend Udo,

danke für deine Mühe!
Die Sonoffs können "von Hause aus" nur die Ewelink app...
Meine sind alle mit Tasmota bis auf einen nicht eingesetzten mit Tasmota geflasht. Der eine läuft mit espeasy, ist aber momentan nicht im gebrauch.

Meine Topics laufen im Wohnzimmer auf home/living/%präfix%
als Präfix dann den Namen wie Aquarium, Vitrine etc...

Ich glaube da habe ich mich falsch ausgedrückt was den Taster angeht...
Die Sache mit Sensoren und Tastern über einen freien GPIO ist mir soweit klar auch wenn ich das mit den Topics und der doppelten Rule nicht gesehen habe..

Ich habe jedoch einen Sonoff T1 2 Ch EU versionhttps://www.banggood.com/SONOFF-T1-EU-A ... hMQAvD_BwE. Dieser ist quasi ein 2 Wege Schalter wobei ich nur Kanal 1 (links) benutze... Recht also Kanal 2 soll der Master werden. dieser hört via Mqtt auf Power2

Meine Sitemap besteht momentan aus Switches (der blaue Punkt) aber keine widget(denke ich) die Sitemap ist oben zu sehen.. Dies funktioniert auch via MQtt und meinen groben topics die bis auf den präfix alle gleich sind. Nur das Büro hat living/Buero/Buero_Licht/ - läuft aber einzeln auch...


Nur eben als Rule nicht
Könntest du die Rule und 1 Item aus der Liste oben als Beispiel für mich anpassen?
Happy IoTing :lol: & viele grüße aus dem bergischen Land!

SoerenKaiser82
Beiträge: 13
Registriert: 29. Jan 2018 22:22
Wohnort: Much / Siegburg

Re: Sonoff als Master Switch

Beitrag von SoerenKaiser82 »

hier mal einige Beispile aus Mosquitto

home/living/Aquarium/STATE
{"Time":"2018-05-02T00:04:46","Uptime":"5T01:54:53","Vcc":3.495,"POWER":"ON","Wifi":{"AP":1,"SSId":"Kaiser","RSSI":56,"APMac":"CC:CE:1E:B3:0E:96"}}

home/living/Wohnzimmerleuchte/POWER2
{"POWER2":"OFF"}
Happy IoTing :lol: & viele grüße aus dem bergischen Land!

Antworten