Seite 1 von 2

Openhab Blockly Bewegungsmelder Bewegungszähler

Verfasst: 14. Mär 2023 19:38
von Greg4711
Hallo,
ich möchte meine Innogy / Livisi Bewegungsmelder in Openhab durch eine Rule einbinden.
Die Innogy-Bewegungsmelder haben die Items
* Bewegungszähler
* Helligkeit und
* Batteriestatus.

Alles läuft soweit.

In den Beispielen zu Rules finde ich immer nur, dass der Item-Status des Bewegungsmelders bei Bewegung auf "on" stellt.

Wie (durch welchen Regel-Baustein) schaffe ich, dass die Regel ausgeführt wird, wenn der Zähler des Bewegungszählers sich um (um eins) erhöht?

Hat vielleicht jemand ein Beispiel oder gar ein Tutorial?

Danke!

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Verfasst: 14. Mär 2023 19:47
von int5749
Greg4711 hat geschrieben: 14. Mär 2023 19:38 Hat vielleicht jemand ein Beispiel oder gar ein Tutorial?
Da Deine Rule ja schon funktioniert und nur der Trigger fehlt, sollte es hiermit klappen

Code: Alles auswählen

rule "Bewegeungserkennung"
when Item Bewegungszaehler changed
then

Schalte alles ein oder aus, was immer Du hier durchführen möchtest

end

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Verfasst: 14. Mär 2023 20:02
von Greg4711
int5749 hat geschrieben: 14. Mär 2023 19:47
Greg4711 hat geschrieben: 14. Mär 2023 19:38 Hat vielleicht jemand ein Beispiel oder gar ein Tutorial?
Da Deine Rule ja schon funktioniert und nur der Trigger fehlt, sollte es hiermit klappen

Code: Alles auswählen

rule "Bewegeungserkennung"
when Item Bewegungszaehler changed
then

Schalte alles ein oder aus, was immer Du hier durchführen möchtest

end
Habe ich mich so undeutlich ausgedrückt?

Leider ist es nicht so einfach. Da ich eine Regel erstellen möchte, dass der Bewegungsmelder nur das Licht einschaltet, wenn es nicht schon per Lichtschalter (Shelly) eingeschaltet wurde. Also eine doppelte If-Then-Verschachtelung. Das zweite if soll prüfen, ob Zähler um eins erhöht wurde.

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Verfasst: 14. Mär 2023 20:26
von int5749
Greg4711 hat geschrieben: 14. Mär 2023 20:02 Habe ich mich so undeutlich ausgedrückt?

Leider ist es nicht so einfach. Da ich eine Regel erstellen möchte, dass der Bewegungsmelder nur das Licht einschaltet, wenn es nicht schon per Lichtschalter (Shelly) eingeschaltet wurde. Also eine doppelte If-Then-Verschachtelung. Das zweite if soll prüfen, ob Zähler um eins erhöht wurde.
EIne erste Hilfe wäre es die Items zu kennen, welche Du verwenden möchtest. Zudem wäre Deine jetzige Rule (am besten der DSL Code) hilfreich, damit man einen ersten Ansatz hat.

Sonst ist es schwierig und kann nur "oberflächlich" bleiben.

Eine Möglichkeite wäre (eben in Unwissenheit der Items)

Code: Alles auswählen

rule "Bewegeungserkennung"
when Item Bewegungszaehler changed
then
	if (DeinLichtItem.state != OPEN) DeinLichtItem.sendCommand(ON)
end
Wenn der Bewegungszaehler sich verändert, muss er ja eines nach oben gezählt haben, oder kann der auch rückwärts zählen?
Sofern die Annahme korrekt ist, wird das Licht eingeschaltet, falls es nicht schon ON ist.

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Verfasst: 17. Mär 2023 19:32
von Greg4711
Folgende Code habe ich über Blockly erstellt, funktioniert aber nicht. Hat jemand eine Idee?

Code: Alles auswählen

if (Keller_Vorraum_geschaltet == 'OFF') {
  if (itemRegistry.getItem('Bewegungsmelder_Raum_Stromspeicher_Keller_Bewegungszahler').getState() > (((persistence.previousState(itemRegistry.getItem('Bewegungsmelder_Raum_Stromspeicher_Keller_Bewegungszahler'),true)) ? persistence.previousState(itemRegistry.getItem('Bewegungsmelder_Raum_Stromspeicher_Keller_Bewegungszahler'),true).getState(): 'undefined'))) {
    events.sendCommand('Lichtschalter_Shelly_Keller_Vorraum', 'ON');
  }
}

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Verfasst: 17. Mär 2023 20:34
von Harka
Hi,
welchen Trigger hat Deine Rule (wodurch wird sie ausgelöst)? Was ist 'Keller_Vorraum_geschaltet' ? Status von etwas anderem als 'Lichtschalter_Shelly_Keller_Vorraum'? Wie lautet Deine Antwort auf:
int5749 hat geschrieben: 14. Mär 2023 20:26Wenn der Bewegungszaehler sich verändert, muss er ja eines nach oben gezählt haben, oder kann der auch rückwärts zählen?
PS: Nutze, wie #int5749 oben, bitte für Code den entsprechenden BBCodes (das Symbol mit '</>')

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Verfasst: 17. Mär 2023 23:01
von udo1toni
Was soll das sein?

Code: Alles auswählen

if (Keller_Vorraum_geschaltet == 'OFF') {
Wenn Du den Code über Blockly erstellst, würde ich hier etwas anderes erwarten :)

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Verfasst: 18. Mär 2023 05:34
von Harka
Udo - Danke für die korrigierte Code-Ansicht. Bin davon ausgegangen das es sich um eine Variable handelt und die Zuweisung im verkürzten Code nur nicht mit auftaucht.

Lösungsvorschlag: Du nutzt den Bewegungszähler als Trigger der Rule (when Item Bewegungsmelder_Raum_Stromspeicher_Keller_Bewegungszahler changed) und nutzt contextual info um den neuen und alten Wert zu ermitteln.
ForumKeller.jpg
und auf Wunsch noch der erzeugte Javascript-Code

Code: Alles auswählen

var Bewegung_Neu, Bewegung_Alt;
Bewegung_Neu = event.itemState;
Bewegung_Alt = event.oldItemState;
if (Bewegung_Neu > Bewegung_Alt) {
  events.sendCommand('Licht_Keller_Vorraum', 'ON');
}
PS: ich bin mir nicht sicher wie sich das ganze nach einem System-Neustart verhält. Das musst Du mal bitte noch im Auge behalten und ggf. nachsteuern.

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Verfasst: 18. Mär 2023 15:56
von int5749
Harka hat geschrieben: 18. Mär 2023 05:34 Udo - Danke für die korrigierte Code-Ansicht. Bin davon ausgegangen das es sich um eine Variable handelt und die Zuweisung im verkürzten Code nur nicht mit auftaucht.

Lösungsvorschlag: Du nutzt den Bewegungszähler als Trigger der Rule (when Item Bewegungsmelder_Raum_Stromspeicher_Keller_Bewegungszahler changed) und nutzt contextual info um den neuen und alten Wert zu ermitteln.
ForumKeller.jpg
Sorry, mit dieser Ansicht kann ich persönlich nichts anfangen :roll: :D
Gibt es dort auch eine DSL Code Ansicht? Do wie Du vorher gepostet hattest??

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Verfasst: 18. Mär 2023 18:43
von Harka
Habs oben noch als Javascript ergänzt. Greg wollte es ja als Blockly. Wenn er doch noch die imho unnötige Abfrage, ob das Licht schon an ist, einbauen möchte, bekommt er das selber gebacken. Ich selbst würde es sogar ganz ohne Script machen und bei Bewegung-changed einfach das Item schalten. Kellerlicht noch mit expires-timer versehen und fertig...