Notify bei bestimmtem Reading

Begonnen von Fabi1309, 17 August 2017, 20:11:44

Vorheriges Thema - Nächstes Thema

Fabi1309

Guten Abend zusammen,

ich benutze eigentlich FHEM nicht sehr intensiv und oft (Perl auch nicht so wirklich) . Ich habe eine Steckdosenleiste und möchte, dass diese ausgeht, wenn der Verbrauch bei 0 liegt.
Das Modul habe ich hier her:

https://forum.fhem.de/index.php/topic,49749.0.html

Das verbinden usw. klappt alles, jedoch kriege ich einfach nicht heraus, wie ich das reading 'CurrentConsumption' auslese um es im if-Satz in FHEM zu benutzen.

Danke für eure Hilfe!

MfG

CoolTux

Readings auslesen geht mit der Funktion ReadingsVal

Aber vielleicht zeigst Mal was du hast oder erklärst was du machen willst.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Da fällt mir ein, willst du auf das Reading mit einem Notify  triggern? Dann bekommst automatisch den Readingswert als Event mit.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Fabi1309

Erstmal danke für die schnelle Antwort.

Haben tue ich nicht viel  ::).
In FHEM wird mir das angezeigt:

http://prntscr.com/g9qw1o

Ich möchte den Wert CurrentConsumption haben, um dann diese Steckdose auszuschalten. Das geht ja mit {fhem("set SWITCH_WORK_1 off")}.

Der Code ist hier zu finden:

https://forum.fhem.de/index.php?action=dlattach;topic=49749.0;attach=61266

Ich hoffe es ist verständlich, was ich möchte! Tut mir leid, dass ich nicht so viel Ahnung habe :/

Danke für die weitere Hilfe!

CoolTux

Keine Ahnung zu haben ist nicht schlimm. Es gibt viel zu FHEM im Forum, im Wiki und natürlich zu erst in der Commandref zu lesen. Es gibt Video Tutorials.

Einfach Ran an den Speck und los geht's.

Nun zu Deinem "Problem"

Wenn das Reading CurrentConsumption Null ist, soll die Steckdose ausgeschalten werden. Richtig?

Also erstelle ein notify welches auf ein Event des Readings mit dem Wert Null triggert und als Aktion schaltest du die Dose aus.


define notifySchalteSteckdoseAus notify SWITCH_WORK_1:CurrentConsumption:.0 set $NAME off


Bitte noch mal schauen und versuchen zu verstehen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Fabi1309

Danke für dein Verständnis.

Um den Code zu verstehen:

define notifySchalteSteckdoseAus notify SWITCH_WORK_1:CurrentConsumption:.0 set $NAME off

define notifySchalteSteckdoseAus notify -> ist ja erstmal nur das erstellen von dem "Notify-Event"
SWITCH_WORK_1:CurrentConsumption:.0 -> Wann das Notify reagieren soll, also wenn SWITCH_WORK_1 kein Verbrauch hat
set $NAME off -> $NAME -> also SWITCH_WORK_1 ausschalten oder halt $NAME gegen jede mögliche andere Steckdose tauschen

Richtig? :o

Jetzt möchte ich aber, wenn eine andere Steckdose Strom hat, dass diese Wieder angeht, also:

define notifySchalteSteckdoseAus notify SWITCH_WORK_2:CurrentConsumption>0 set SWITCH_WORK_1 on

oder wie mache ich, dass mit der CurrentCosumption > 0?

MfG

CoolTux

Zitat von: Fabi1309 am 17 August 2017, 21:03:04
Danke für dein Verständnis.

Um den Code zu verstehen:

define notifySchalteSteckdoseAus notify SWITCH_WORK_1:CurrentConsumption:.0 set $NAME off

define notifySchalteSteckdoseAus notify -> ist ja erstmal nur das erstellen von dem "Notify-Event"
Fast. Ja ich weiß Korinthenkacker aber damit Du halt weißt worum es geht und wie man es genau nennt.

Das definiert ein FHEM Device mit Namen und vom Type notify

Zitat
SWITCH_WORK_1:CurrentCotnsumption:.0 -> Wann das Notify reagieren soll, also wenn SWITCH_WORK_1 kein Verbrauch hat
Richtig. Wann das Notify triggern soll. Das ist die reg expression für das Event. Denn es wird in der Regel immer auf Events reagiert. Dein Reading löst, wenn es geschrieben wird, ein Event aus, darauf wird getriggert.

Zitat
set $NAME off -> $NAME -> also SWITCH_WORK_1 ausschalten oder halt $NAME gegen jede mögliche andere Steckdose tauschen

Richtig? :o

$NAME ist eine Variable welchen den Namen des Notify auslösenden Devices enthält. Da unsere RegEx so eng ist, wir das Device vorgeben, kann es nur Switch_Work_1 sein.

Zitat
Jetzt möchte ich aber, wenn eine andere Steckdose Strom hat, dass diese Wieder angeht, also:

define notifySchalteSteckdoseAus notify SWITCH_WORK_2:CurrentConsumption>0 set SWITCH_WORK_1 on

oder wie mache ich, dass mit der CurrentCosumption > 0?

MfG

Da du bei RegEx keine Vergleichsoperatoren hast, musst du das anders ausdrücken.

define notifySchalteSteckdoseAus notify SWITCH_WORK_2:CurrentConsumption:.[1-9]+ set SWITCH_WORK_1 on


Das ist jetzt bisschen billig und viele werden dir sagen nimm doch DOIF statt Notify. Aber es würde gehen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Fabi1309

Danke vielmals für die Erklärung.

Zwei Fragen hätte ich noch.

Der Code ist ja soweit gleich, also für das anschalten von der anderern Steckdose, wenn Spannung da ist, aber was bedeutet das .[1-9]+?
Und was ist der große Unterschied zwischen DOIF und Notify?

MfG

CoolTux

[1-9]+
Ist RegEx. Dazu bitte Lektüre lesen. Bedeutet Zahlen von 1-9 in der ersten Zahl + weitere Zahlen. Also 5 oder 24 oder 758 auf das alles wird gematcht. Nur nicht auf 0

DOIF ist sehr mächtig. Es kann Funktionen von Notify, at und Watchdog und noch tausend Dinge mehr. Schau mal in die Commandref.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net