Bewegungsmelder - Helligkeitswert bei Auslösung speichern

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

SkyWalker2_D
Beiträge: 28
Registriert: 8. Feb 2022 19:36
Answers: 0

Bewegungsmelder - Helligkeitswert bei Auslösung speichern

Beitrag von SkyWalker2_D »

Moin!

Ich stolpere gerade über eine Rule meines Bewegungsmelder. Die Lampe geht bei 'Nacht=On' gedimmt an und bei Bewegung auf hell.

Der Ausgangswert variiert aber. Diesen Ausgangswert speichere ich in eine Variable die dann nach Ablauf des Timers in der Rule wieder an die Lampe gesendet wird.

Z. B. von 5% auf 60%. Bei erneuter Bewegung startet die Rule neu, speichert dann aber den aktuell eingestellten Wert, also 60%.

Wie kann diesen Wert separieren, also hier z. B. die 5%?

Ich bin übrigens immer noch mit Blockly unterwegs weil sich DSL mir noch nicht erschlossen hat.

Muss ich innerhalb der 'then' Rule nochmal einen 'if' Block einbauen?

Leider finde ich nicht über die Suche.

Danke vorab

Grüße
Sky

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

Re: Bewegungsmelder - Helligkeitswert bei Auslösung speichern

Beitrag von udo1toni »

Ich hoffe, ich habe das Problem richtig verstanden: Wenn während der "Hell-Phase" erneut Bewegung erkannt wird, wird der alte "Dunkel-Wert" mit dem aktuellen "Hell-Wert" überschrieben.

Als DSL Rule (zwingend per *.rules Datei, da globale Variablen gebraucht werden) sähe eine solche Rule grundsätzlich ungefähr so aus:

Code: Alles auswählen

var Timer   tBewegung = null                                 // Timer für Licht aus
var Integer iLevel    = 0                                    // Speicher für Level
val Integer iTimeout  = 35                                   // Länge Timeout

rule "Licht bei Bewegung"
when
    Item Bewegung received update ON                         // Bewegung erkannt
then
    if(tBewegung === null) {                                 // Falls Timer noch nicht läuft
        iLevel = (Lampe.state as Number).intValue            // speichere Helligkeit
        Lampe.sendCommand(60)                                // Schalte Lampe hell
        tBewegung = createTimer(now.plusSeconds(iTimeout),[| // Starte Timer; Nach Ablauf der Zeit
            Lampe.sendCommand(iLevel)                        // Schalte Lampe auf vorherigen Wert
            tBewegung = null                                 // und lösche Zeiger auf Timer
        ])
    } else                                                   // ansonsten (Timer existiert)
        tBewegung.reschedule(now.plusSeconds(iTimeout))      // setze Timerablaufzeitpunkt neu
end
Also nicht weiter aufwändig. Der Haupttrick besteht darin, dass zunächst geprüft wird, ob die Lampe bereits hell geschaltet wurde. Nur, falls das nicht der Fall ist, wird der aktuelle Helligkeitswert überhaupt gespeichert und die Lampe hell geschaltet.

Wie sieht es in Blockly aus? Kannst Du dort einen Timer überhaupt verlängern? Kannst Du feststellen, ob der Timer gerade läuft?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

SkyWalker2_D
Beiträge: 28
Registriert: 8. Feb 2022 19:36
Answers: 0

Re: Bewegungsmelder - Helligkeitswert bei Auslösung speichern

Beitrag von SkyWalker2_D »

Moin udo1toni!

Vielen Dank. Ja, das war genauso gemeint. Timer verlängern geht bei Blockly. Aber DSL wäre mir für weitere Projekte definitiv lieber. Ich müsste aber, um Deinen Code anzulegen die GUI verlassen und das anderswo eingeben, oder? GUI & Blockly sind ja bisher nur mein Wilderungsgebiet!

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

Bewegungsmelder - Helligkeitswert bei Auslösung speichern

Beitrag von udo1toni »

Genau. Die Rules werden im Dateisystem unterhalb /etc/openhab/rules/ gespeichert. Der Dateiname muss dabei auf .rules enden (Groß/Kleinschreibung ist zu beachten).

Du kannst (wie die Endung auf s auch nahelegt) beliebig viele Rules in einer Datei anlegen, Du kannst auch beliebig viele *.rules Dateien innerhalb dieses Verzeichnisses anlegen (keine Unterordner!)

Nur der User openhab hat Schreibrechte in dem Ordner, evtl. Darf aber auch der User openhabian in dem Ordner schreiben, falls es sich um eine openHABian Installation handelt.

Am bequemsten arbeitet man mit VSCode, dieser Editor bietet buchstäblich zehntausende Plugins für spezielle Erweiterungen. Unter anderem eben auch eines speziell für openHAB. Damit wird VSCode um zwei Listen erweitert, in denen alle Things/Channel und Items gelistet sind. Weiterhin bietet das Plugin Online Code Prüfung (das openHAB System wird zur Prüfung auf Korrektheit verwendet), Code Completion, Snippets, und, und, und…
VSCode kann man für jedes Betriebssystem laden und kostenlos nutzen ob Windows, MacOS oder GNU/Linux. Die Verbindung zum Conf-Ordner kann dann über Samba („Windows Freigabe“) erfolgen.


Gesendet von iPad mit Tapatalk
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

SkyWalker2_D
Beiträge: 28
Registriert: 8. Feb 2022 19:36
Answers: 0

Re: Bewegungsmelder - Helligkeitswert bei Auslösung speichern

Beitrag von SkyWalker2_D »

Danke!

OK, whow. Nächste Baustelle. Samba versuchen zu installieren und dann VSCode anschauen :)
Es bleibt spannend :)

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

Re: Bewegungsmelder - Helligkeitswert bei Auslösung speichern

Beitrag von int5749 »

SkyWalker2_D hat geschrieben: 22. Mär 2022 09:51 OK, whow. Nächste Baustelle. Samba versuchen zu installieren und dann VSCode anschauen :)
Es bleibt spannend :)
Moin, wenn Du openHABian nutzt, ist Samba schon installiert ;-)
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

SkyWalker2_D
Beiträge: 28
Registriert: 8. Feb 2022 19:36
Answers: 0

Re: Bewegungsmelder - Helligkeitswert bei Auslösung speichern

Beitrag von SkyWalker2_D »

Ich bekomme Samba aber nicht "aktiviert" trotz des durchlesen diverser Anleitungen! Somit ist das noch eine Baustelle bei mir!

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

Re: Bewegungsmelder - Helligkeitswert bei Auslösung speichern

Beitrag von int5749 »

SkyWalker2_D hat geschrieben: 22. Mär 2022 13:02 Ich bekomme Samba aber nicht "aktiviert" trotz des durchlesen diverser Anleitungen! Somit ist das noch eine Baustelle bei mir!
Hast Du denn openHABian installiert?? Denn dann ist Samba schon aktiv und kann mit dem entsprechenden User genutzt werden.
Evtl. müssten noch andere User berechtigt werden, sofern man andere nutzen möchte.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

SkyWalker2_D
Beiträge: 28
Registriert: 8. Feb 2022 19:36
Answers: 0

Re: Bewegungsmelder - Helligkeitswert bei Auslösung speichern

Beitrag von SkyWalker2_D »

Ja, openhabian ist installiert und Samba ist auch aktiv laut Abruf "sudo service smbd status".

Aber unter Windows sehe ich den Pi leider nicht!

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

Re: Bewegungsmelder - Helligkeitswert bei Auslösung speichern

Beitrag von udo1toni »

Sehen kannst Du den auch nicht, das geht hier schon seit XP nicht mehr richtig. Du musst einfach mal in den (Datei-)Explorer gehen und dort in der Adresszeile \\ip.des.openhab.servers\ eingeben. Falls Du im Browser erfolgreich http://openhabian:8080/ nutzen kannst, kannst Du auch \\openhabian\ versuchen. Es sollte dann eine Passwortabfrage geöffnet werden.
Evtl. ist die Dateifreigabe auch grundsätzlich deaktiviert, dann sollte allerdings bei der Eingabe oben im Explorer Fenster eine gelbe Nachricht aufpoppen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten