Openhab Blockly Bewegungsmelder Bewegungszähler

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Greg4711
Beiträge: 38
Registriert: 1. Sep 2022 09:59
Answers: 0

Openhab Blockly Bewegungsmelder Bewegungszähler

Beitrag 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!

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Beitrag 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
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Greg4711
Beiträge: 38
Registriert: 1. Sep 2022 09:59
Answers: 0

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Beitrag 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.

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Beitrag 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.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Greg4711
Beiträge: 38
Registriert: 1. Sep 2022 09:59
Answers: 0

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Beitrag 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');
  }
}

Harka
Beiträge: 489
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Beitrag 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 '</>')

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

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Beitrag 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 :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Harka
Beiträge: 489
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Beitrag 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.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Harka am 18. Mär 2023 18:32, insgesamt 1-mal geändert.

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Beitrag 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??
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Harka
Beiträge: 489
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Openhab Blockly Bewegungsmelder Bewegungszähler

Beitrag 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...

Antworten