Seite 1 von 1

item triggered bei Volt Änderung?

Verfasst: 26. Dez 2021 18:27
von Boris099
OH2.5.12, PI4
Also ich habe hier mehrere sonoff Magnetschalter, die per ewelink binding eingebunden sind.
Soweit funktioniert das.
Jedoch habe ich nun mehrfach bemerkt, das die angesteuerten Lampen geschaltet werden,
obwohl der Magnetschalter gar nicht ausgelöst hat, jedoch sehe ich im Log, das die RSSI und Volt gemeldet wurden.
Kann es sein, das hier fälschlicherweise ein "ON" interpretiert wird?
Kein Schalter wurde bedient, und es funktioniert natürlich auch wenn der Magnetschalter ein "echtes ON" bekommt.
Log

Code: Alles auswählen

2021-12-26 17:45:41.566 [vent.ItemStateChangedEvent] - sonoff_102_2657ebb4_100103a69d_rssi changed from -97 to -99

2021-12-26 17:45:41.630 [vent.ItemStateChangedEvent] - sonoff_102_2657ebb4_100103a69d_battery changed from 2.954 V to 2.937 V

2021-12-26 17:45:41.632 [vent.ItemStateChangedEvent] - DW2_GARAGE_Battery changed from 2.954 to 2.937

2021-12-26 17:45:44.746 [ome.event.ItemCommandEvent] - Item 'Lampe_Einfahrt' received command ON
Rule

Code: Alles auswählen

rule "Einfahrt_Licht"
when 
	Item DW2_TOR received update ON or
        Item DW2_TUER received update ON or
        Item DW2_GARAGE received update ON or
	Item S_Touch90_1 received update ON or
        Item zwave_device_6c898019_node8_scene_number received update 4	
then
    	if(Nacht.state != OFF) {                                      
                if(Lampe_Einfahrt_Timer !== null)
                Lampe_Einfahrt_Timer.reschedule(now.plusSeconds(240))
        	if(Lampe_Einfahrt.state != ON) { 
		Lampe_Einfahrt.sendCommand(ON) 
                Lampe_Einfahrt_Timer = createTimer(now.plusSeconds(240), [|		
                Lampe_Einfahrt.sendCommand(OFF) 
                Lampe_Einfahrt_Timer = null
                ])
		}
Das Thing und seine channels, sind alle aktiv, wobei komischerweise nur Switch, Battery level, und Signal Strenght
im Log ankommen, was natürlich auch schon eigenartig ist
Bild_2021-12-26_182446.png

Re: item triggered bei Volt Änderung?

Verfasst: 26. Dez 2021 20:44
von udo1toni
Nein, die nicht-switch-Channel sollten die Rule nicht triggern. Eine Rule wird exakt durch die angegeben Ereignisse getriggert, durch sonst nichts. Jedes dieser Ereignisse wird auch geloggt (es sei denn, man das das Logging abweichend vom Standard konfiguriert).

Deine Rule ist unvollständig. Im Log ist auch nicht sicher erkennbar, dass der Einschaltbefehl tatsächlich von dieser Rule stammt.

Re: item triggered bei Volt Änderung?

Verfasst: 27. Dez 2021 01:10
von Boris099
Ja ich hatte ja auch nur das Stück des Codes kopiert um zu zeigen was ich da einlese.
Und ja im Log steht nichts was den Auslöser zeigt, genau das bringt mich ja zu der Frage, ob evtl andere Auslöser hier triggern, denn genau bevor die Lampe Einfahrt geschaltet wird sehe ich den Batterie Level und rssi im Log, das war nun schon mehrfach so.
Wie kann ich das Schalten der Lampe Einfahrt bzw den Trigger noch genauer analysieren, bzw geht das überhaupt?

Re: item triggered bei Volt Änderung?

Verfasst: 27. Dez 2021 12:30
von peter-pan
Um zu sehen, wann die Regel triggert, baust du am besten eine "logInfo" in die Regel ein:

Code: Alles auswählen

rule "Einfahrt_Licht"
when 
	Item DW2_TOR received update ON or
        Item DW2_TUER received update ON or
        Item DW2_GARAGE received update ON or
	Item S_Touch90_1 received update ON or
        Item zwave_device_6c898019_node8_scene_number received update 4	
then
        logInfo("Einfahrt Licht", "Ein Trigger wurde ausgelöst")
    	if(Nacht.state != OFF) {                                      
                if(Lampe_Einfahrt_Timer !== null)
                Lampe_Einfahrt_Timer.reschedule(now.plusSeconds(240))
        	if(Lampe_Einfahrt.state != ON) { 
		Lampe_Ei.......
das ist nur ein Ausschnitt deiner Regel, mit dem logInfo-Beispiel. Und dann kannst du das auch näher beleuchten, wie Udo das beschrieben hat.

Den auslösenden Trigger könntest du auch heraus bekommen, wenn du die Items in eine Gruppe packst und dann über den Trigger

Code: Alles auswählen

Member of <Group>
die Ausgabe im logInfo anzeigen lässt.

Re: item triggered bei Volt Änderung?

Verfasst: 27. Dez 2021 21:00
von udo1toni
Du kannst das triggernde Item auch ohne die Gruppenfunktion ermitteln. da wir unter OH2.5.12 unterwegs sind, reicht diese Zeile im Code:

Code: Alles auswählen

logInfo("Einfahrt Licht", "Die Rule wurde durch das Item {} getriggert.",triggeringItem.name)
Unter openHAB3 steht das implizite Objekt triggeringItem nur in Rules zur Verfügung, die durch Member of getriggert wurden. In der vorliegenden Rule müsste man deshalb unter openHAB3 die Zeile abändern:

Code: Alles auswählen

logInfo("Einfahrt Licht", "Die Rule wurde durch das Item {} getriggert.",triggeringItemName)
Es muss also der Punkt weg und das kleine n gegen ein großes N getauscht werden. Im Unterschied zu triggeringItem kann man mit triggeringItemName tatsächlich nur auf den Namen des Items zugreifen, was eine Einschränkung gegenüber opeHAB2 darstellt. Mutmaßlich gab es Komplikationen durch die potenziell sehr unterschiedlichen Itemtypen innerhalb des triggeringItems und man ist der Herausforderung einfach aus dem Weg gegangen :lol:

Re: item triggered bei Volt Änderung?

Verfasst: 28. Dez 2021 00:17
von peter-pan
udo1toni hat geschrieben: 27. Dez 2021 21:00 Du kannst das triggernde Item auch ohne die Gruppenfunktion ermitteln. da wir unter OH2.5.12 unterwegs sind, reicht diese Zeile im Code:
...richtig, er ist ja noch in OH2.5.12. 👍