Dummy's und Notify und Devices

Begonnen von bumbumb, 20 Januar 2018, 09:33:32

Vorheriges Thema - Nächstes Thema

Otto123

Bei welcher Variante erhältst Du eine 0?

Beschreibe bitte Schritt für Schritt was Du tust und welche Reaktion vom System Du bekommst. Ich kann mich nämlich gerade nicht auf Dein System hacken und Die Video Kamera hinter Dir ist offenbar kaputt!  :'(
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

bumbumb

also ich gebe das in die fhem komandozeile ein

ReadingsNum("GHoma_d7a064","power","")

bekomme dann eine 0 zurück

Otto123

#17
Habe ich das irgendwo geschrieben? Copy & Paste kaputt?
{ReadingsNum("GHoma_d7a064","power",0)}

Edit Fehler korrigiert "" -> 0
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

bumbumb

ja damit erhalte ich eine 0 zurück

Otto123

Und mit {ReadingsVal("GHoma_d7a064","power","")}?

Vielleicht ist der Wert derzeit 0 ?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

bumbumb

jetzt erhalte ich 3.6 W aber dummy WaschmaschineBetrieb geht nicht auf on. Obwohl der Wert größer 3 ist

Otto123

#21
Nochmal abschließend aus der Doku
ZitatReadingsVal(<devicename>,<reading>,<defaultvalue>)
Gibt den Inhalt der "readings" zurück (den Inhalt der in dem "Readings"-Abschnitt von "list device" angezeigt wird)

ReadingsNum(<devicename>,<reading>, <defaultvalue>,<round>)
Gibt die erste Zahl aus dem Readingswert zurück. Falls <round> spezifiziert ist, wird sie auf diese Anzahl von Dezimalstellen gerundet.

Das bei Dir ReadingsNum nicht funktioniert kann ich mir nicht erklären. War mein Fehler. Anstatt (default) "" muss es (round) 0 heißen

Aber Du kannst einen String "3.6 W" nicht mit einer Zahl vergleichen. Dann muss Du auf dein Konstrukt aus # 1 zurückgreifen und " W" entfernen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

bumbumb

ich habe diesen dummy,

aber es passiert einfach nichts.


#Dummy WaschmaschineBetrieb definieren
define WaschmaschineBetrieb dummy
attr WaschmaschineBetrieb event-on-change-reading state
attr WaschmaschineBetrieb room HWR

#Dummy WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
define WaschmaschineBetriebAn notify GHoma_d7a064:power.* {\
if (ReadingsVal("GHoma_d7a064","power","") >= 4 && Value("WaschmaschineBetrieb") ne "on") {\
fhem ("set UG.WaschmaschineBetrieb on");;\
fhem ("setstate WaschmaschineAutoOff defined");;\
}\
}

KernSani

Ich bewundere Ottos Geduld und schalte mich mal dazu...

Wie Otto schon korrekt angemerkt hat vergleichst du Äpfel mit Birnen. ReadingsVal liest den Wert eines Readings aus, ReadingsNum versucht den numerischen Anteil herauszubekommen.
1.) Bitte noch einmal folgendes machen
ReadingsVal("GHoma_d7a064","power","") in die Kommandozeile eingeben. Ergebis per copy paste übernehmen und hier posten (mit einem Verweis, dass das das Ergebnis von ReadingsVal ist.)
2.)
ReadingsNum("GHoma_d7a064","power",0) in die Kommandozeile eingeben. Ergebis per copy paste übernehmen und hier posten (mit einem Verweis, dass das das Ergebnis von ReadingsNum ist.)
3.) In deinem Coding fällt mir spontan auf, dass du (korrekt) "WaschmaschineBetrieb" abfragst, dann aber versuchst "UG.WaschmaschineBetrieb" einzuschalten
4.) Bitte nicht diee fhem.cfg bearbeiten sondern immer alles über die Weboberfläche machen.
5.) Beobachte mal den Event-Monitor was da so an events kommt.

Edit: Das Ganze natürlich während die Waschmaschine läuft

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

bumbumb

Vielen Dank
bei {ReadingsVal("GHoma_d7a064","power","")}

kommt
3.71

bei
{ReadingsNum("GHoma_d7a064","power",0)}

kommt auch 
3.71

KernSani

Ok. 3.71 ist kleiner 4. Damit reagiert das notify richtig... Ändere das notify mal so, dass es was zu tun bekommt
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Otto123

Zitat von: bumbumb am 20 Januar 2018, 14:52:14
Vielen Dank
bei {ReadingsVal("GHoma_d7a064","power","")}

kommt
3.71
Und wieso kam da bisher ein Wert mit W am Ende?  :'(

Das mit dem Syntax von ReadingsNum war mein blöder Kopierfehler, habe es durchgehend korrigiert.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

bumbumb

Wie soll ich des abändern. Kannst du es mir etwas besser beschreiben. Vielen dank

KernSani

Zitat von: Otto123 am 20 Januar 2018, 15:56:48
Das mit dem Syntax von ReadingsNum war mein blöder Kopierfehler, habe es durchgehend korrigiert.
Macht an der Stelle aber eh keinen Unterschied...

Zitat von: Otto123 am 20 Januar 2018, 15:56:48
Und wieso kam da bisher ein Wert mit W am Ende?  :'(
Berechtigte Frage... Vielleicht weil ich den TE explizit gebeten hatte, das Ergebnis per copy/paste zu übernehmen ;-)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

#29
Zitat von: bumbumb am 20 Januar 2018, 15:59:21
Wie soll ich des abändern. Kannst du es mir etwas besser beschreiben. Vielen dank
Jetzt wird 's langsam wirklich kurios... In deinem notify steht:

if (ReadingsVal("GHoma_d7a064","power","") >= 4 && Value("WaschmaschineBetrieb") ne "on")

Es kommt aber nur ein 3.71 was meines Wissens eben nicht >= 4 ist. Ich würde dann mal vorschlagen z.B. folgendes zu machen
if (ReadingsVal("GHoma_d7a064","power","") >= 3 && Value("WaschmaschineBetrieb") ne "on")
Damit ist die Bedingung möglicherweise erfüllt und die folgende Zeile (die du hoffentlich mittlerweile wie oben beschrieben geändert hast) wird ausgeführt:
fhem ("set WaschmaschineBetrieb on");;

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...