FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Gunther am 17 Oktober 2017, 17:48:36

Titel: notify, doif debuggen?
Beitrag von: Gunther am 17 Oktober 2017, 17:48:36
Hallo zusammen, gibt es eine Möglichkeit einen notify oder ein doif zu debuggen, also genau zu sehen, was passiert?
Wenn ja, wie?
Titel: Antw:notify, doif debuggen?
Beitrag von: CoolTux am 17 Oktober 2017, 17:49:53
Was genau willst du denn sehen? Du kannst verbose 5 setzen beim notify dann sieht man was im log
Titel: Antw:notify, doif debuggen?
Beitrag von: Thorsten Pferdekaemper am 17 Oktober 2017, 17:53:58
https://perldoc.perl.org/perldebug.html
Titel: Antw:notify, doif debuggen?
Beitrag von: Gunther am 17 Oktober 2017, 18:44:33
Zitat von: CoolTux am 17 Oktober 2017, 17:49:53
Was genau willst du denn sehen? Du kannst verbose 5 setzen beim notify dann sieht man was im log

Also, ich habe einen dummy: viessmann_oelverbrauch_codierung
Wenn ich diesen setze, z. B.:
set viessmann_oelverbrauch_codierung 2.1

soll mein notify den jeweiligen Wert mit 10 multiplizieren (Wert*10=WertB)
und dann
set Viessmann Verbrauch-Brenner WertB
ausführen

Folgendes steht im DEF meines notifys:
viessmann_oelverbrauch_codierung:$EVENT { fhem "set Viessmann Verbrauch-Brenner $EVENT*10" }

Leider tut sich nichts. jetzt würde ich gerne sehen, was $EVENT macht und welchen Wert das notify beim set nimmt.
Titel: Antw:notify, doif debuggen?
Beitrag von: CoolTux am 17 Oktober 2017, 18:54:53
Da muss man nichts debuggen da muss man nur wissen wie man ein Notify aufbaut und wie die RegEx für den Trigger aussehen muss.
Beides erfährt man in der Commandref zu Notify, ausserdem ist der Eventmonitor noch sehr sehr hilfreich.
Titel: Antw:notify, doif debuggen?
Beitrag von: t0m am 17 Oktober 2017, 21:19:25
Hi Gunther,

bin mir nun nicht 100% sicher, was du brauchst. Aber du kannst ein Notify manuell triggern: https://wiki.fhem.de/wiki/Trigger

Das Event kannst du dann simpel loggen: https://forum.fhem.de/index.php?topic=53744.0

War das hilfreich? Wenn nein, dann erkläre bitte nochmal, was du genau brauchst.


Grüße
t0m
Titel: Antw:notify, doif debuggen?
Beitrag von: Otto123 am 17 Oktober 2017, 21:48:05
Zitat von: Gunther am 17 Oktober 2017, 18:44:33
Folgendes steht im DEF meines notifys:
viessmann_oelverbrauch_codierung:$EVENT { fhem "set Viessmann Verbrauch-Brenner $EVENT*10" }

Leider tut sich nichts. jetzt würde ich gerne sehen, was $EVENT macht und welchen Wert das notify beim set nimmt.
Sorry aber das regEx ist doch totaler Unsinn!? Als Trigger $EVENT? Das ist doch wie Münchhausen sich selbst am Zopf aus dem Sumpf? Oder ist das gleich mit viessmann_oelverbrauch_codierung?
Wenn Du auf alle Events triggern willst dann:
viessmann_oelverbrauch_codierung { fhem "set Viessmann Verbrauch-Brenner $EVENT*10" }

Mach doch deinen Trigger(das ganze notify) mit dem Eventmonitor, da sieht man auch den Event an sich ganz gut  ;D
https://wiki.fhem.de/wiki/Event_monitor

Gruß Otto
Titel: Antw:notify, doif debuggen?
Beitrag von: Gunther am 17 Oktober 2017, 23:48:35
Danke schonmal für Eure Antworten und sorry für meinen Anfängercode...  ::)

Zitat von: Otto123 am 17 Oktober 2017, 21:48:05
Sorry aber das regEx ist doch totaler Unsinn!? Als Trigger $EVENT? Das ist doch wie Münchhausen sich selbst am Zopf aus dem Sumpf? Oder ist das gleich mit viessmann_oelverbrauch_codierung?
Musste sehr lachen... (und war ein wenig peinlich berührt...)  ;)
Also, ich möchte, wenn viessmann_oelverbrauch_codierung geändert wird, dass dieser Wert mit 10 multipliziert und dann im set verwurschtelt wird.

1.) Ich habe mir das Wiki zum Eventmonitor angeschaut, werde aber noch nicht schlau daraus, wie ich das ganze notify da ausführen, bzw. wie ich das Event sehen kann.
Könnt Ihr mir bitte nochmal unter die Arme greifen?

2.) Zum Testen befülle ich nun einen Dummy mit dem notify. Scheint dank Eurer Hilfe auch schon zu klappen. Leider rechnet das Ding nicht (versucht mit 2,0 und 2.0), sonder befüllt den Dummy mit "2.0*10":
viessmann_oelverbrauch_codierung { fhem "set vdummy ($EVENT*10)" }
Wie bekomme ich das Rechnen bewerkstelligt?


Titel: Antw:notify, doif debuggen?
Beitrag von: amenomade am 18 Oktober 2017, 00:13:51
{ my $result = $EVENT * 10;; fhem "set vdummy $result" }
Titel: Antw:notify, doif debuggen?
Beitrag von: Otto123 am 18 Oktober 2017, 00:23:09
zu 1.
Du klickst im Eventmonitor auf den Filter .*, schreibst per copy&paste viessmann_oelverbrauch_codierung dort rein.
Dann siehst Du die Events von viessmann_oelverbrauch_codierung

Gruß Otto
Titel: Antw:notify, doif debuggen?
Beitrag von: Wzut am 18 Oktober 2017, 07:27:54
Zitat von: Gunther am 17 Oktober 2017, 23:48:35
Wie bekomme ich das Rechnen bewerkstelligt?
Nicht innerhalb des Strings rechnen sondern ausserhalb, d.h. entweder davor wie im Beispiel von amenomade oder danach : 
viessmann_oelverbrauch_codierung { fhem "set vdummy ".($EVENT*10) }
Titel: Antw:notify, doif debuggen?
Beitrag von: nils_ am 18 Oktober 2017, 09:46:24
Zitat von: Wzut am 18 Oktober 2017, 07:27:54
Nicht innerhalb des Strings rechnen sondern ausserhalb, d.h. entweder davor wie im Beispiel von amenomade oder danach : 
viessmann_oelverbrauch_codierung { fhem "set vdummy ".($EVENT*10) }

muss das fhem eigentlich da stehen?

def ntfy_abc notify viessmann_oelverbrauch_codierung set vdummy ($EVENT*10)

Titel: Antw:notify, doif debuggen?
Beitrag von: Gunther am 18 Oktober 2017, 12:39:42
Danke Euch allen, dass Ihr Euch auch um Coding-Anfänger wie mich kümmert.
Jetzt kann ich in FHEM die Logiken aufbauen um später in Tablet UI eine schöne Oberfläche zur einfacheren Konfiguration meiner Viessmannheizung zu bauen.
Hat mit folgendem geklappt:
Zitat von: Wzut am 18 Oktober 2017, 07:27:54
Nicht innerhalb des Strings rechnen sondern ausserhalb, d.h. entweder davor wie im Beispiel von amenomade oder danach : 
viessmann_oelverbrauch_codierung { fhem "set vdummy ".($EVENT*10) }

Zitat von: nils_ am 18 Oktober 2017, 09:46:24
muss das fhem eigentlich da stehen?

def ntfy_abc notify viessmann_oelverbrauch_codierung set vdummy ($EVENT*10)
Habe es gerade getestet und funktioniert nicht.
vdummy ist dann (20*10), wenn viessmann_oelverbrauch_codierung mir 20 gesetzt wird.


Zusatzfrage:
Ich habe nun mit notify gearbeitet. Ist das der richtige Weg oder ist es performanter mit DOIFs für soetwas zu arbeiten?
Titel: Antw:notify, doif debuggen?
Beitrag von: amenomade am 18 Oktober 2017, 14:00:35
ZitatZusatzfrage:
Ich habe nun mit notify gearbeitet. Ist das der richtige Weg oder ist es performanter mit DOIFs für soetwas zu arbeiten?
Du kannst lange Diskussionen im Forum diesbzg. finden...
Für einfache Bedingungen wie hier, ist es eigentlich komplett egal. Geschmackssache.
Titel: Antw:notify, doif debuggen?
Beitrag von: Gunther am 18 Oktober 2017, 14:09:08
Danke!

Ich habe noch eine weitere Frage:
Statt des festen Multiplikators in der Formel habe ich nun spaßeshalber versucht mit einer Variablen (Dummy "dummy_multiplikator") zu arbeiten. Leider klappt das nicht. Vermutlich bekommt Ihr wieder Lachkrämpfe. Leider habe ich noch nicht raus, wo ich sinnvoll nach Syntax suchen kann.
ausloesender_dummy { fhem "set dummy_der_veraendert_werden_soll ".($EVENT* dummy_multiplikator )
Titel: Antw:notify, doif debuggen?
Beitrag von: CoolTux am 18 Oktober 2017, 14:32:36
Du solltest Dich in Perl einlesen. Dann klappt das auch. Ausserdem in FHEM Grundsachen


ausloesender_dummy { fhem "set dummy_der_veraendert_werden_soll " . $EVENT * Value('dummy_multiplikator');
Titel: Antw:notify, doif debuggen?
Beitrag von: Gunther am 18 Oktober 2017, 19:17:00
Danke Dir!
Das Problem ist immer zu wissen, wo ich nachschaue, wenn ich alle halbe Jahre mal an so etwas schraube.
Mir ist es auch immer unangenehm Euch hier zu belästigen. Dann versuche ich rum und häufig scheitert es Details...  :o
Titel: Antw:notify, doif debuggen?
Beitrag von: Otto123 am 18 Oktober 2017, 19:41:15
Um den in #12 noch aufzulösen:
viessmann_oelverbrauch_codierung set vdummy {($EVENT*10)}
Wäre die kurze Alternative wenn man im set Befehl rechnen will. Ich hoffe das klappt auch mit $EVENT, ich habe es jetzt nur mit {(20*10)} probiert  :D

Man muss mit dem Ausdruck auf Perl springen ->
https://fhem.de/commandref_DE.html#set

Gruß Otto