FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: bumbumb am 20 Januar 2018, 09:33:32

Titel: Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 09:33:32
Hallo
ich habe ein device erstellt. Wie folgt:

define GHoma GHoma 4196
define GHoma_d7a064 GHoma_d7a064
attr GHoma_d7a064 room HWR

Die Werte von der Steckdose kommen auch richtig an. Jetzt möchte ein Notify erstellen und in einen dummy schreiben. Dieses ist wie folgt angelegt.

define WaschmaschineWatt dummy
attr WaschmaschineWatt room HWR

define WaschmaschineWattSet notify GHoma_d7a064.power {
   my $power_w=ReadingsVal("GHoma_d7a064.power","power","");;
   my $power=substr($power_w, 0,length($power_w)-2);;
   fhem ("set WaschmaschineWatt $power");;
}
aber leider kommt dort nur ??? an. Wo ist der Fehler
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: DeeSPe am 20 Januar 2018, 09:39:30
define WaschmaschineWattSet notify GHoma_d7a064:power:.* {\
   my $power=ReadingsNum($NAME,"power",0);;\
   fhem ("set WaschmaschineWatt $power");;\
}


Gruß
Dan
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 09:55:37
vielen dank

und bei diesem notify

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

      fhem ("set WaschmaschineBetrieb on");
      fhem ("setstate WaschmaschineAutoOff defined");
   }
}
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 10:02:41
define WaschmaschineBetrieb dummy
attr WaschmaschineBetrieb event-on-change-reading state
attr WaschmaschineBetrieb room HWR

ist das andere dummy
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 10:17:08
ich weiss nicht warum es mit diesem notify auch nicht klappt
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: KernSani am 20 Januar 2018, 11:11:06
Moin,

erstens: Verwende mal Code tags für deinen Code. Das ist das # oben im Editor über den Smilies.
zweitens: Schau dir nochmal genau an,  was DeeSPe gepostet hat und vergleiche das mit deinem notify (Guck z.B. mal welche Funktion DeeSPe aufruft)
drittens: Bitte genauere Angaben als "geht nicht". Kommen falsche Werte an, triggert das notify nicht etc...

Grüße,

Oli
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: Otto123 am 20 Januar 2018, 11:39:17
Moin,

kleiner Hinweis am Rande:
Mit set magic (https://fhem.de/commandref_DE.html#set) kann man den Code einfacher machen, aus {\
   my $power=ReadingsNum($NAME,"power",0);;\
   fhem ("set WaschmaschineWatt $power");;\
}
wird ganz kurzset WaschmaschineWatt [$NAME:power:d]

Gruß Otto
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 12:44:14
Hallo,

ich habe diesen Dummy erstellt, jedoch sehe nur ???. Ich finde den Fehler einfach nicht. Könnt ihr mir helfen


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("Waschmaschine","power","") >= 4 && Value("WaschmaschineBetrieb") ne "on") {\
fhem ("set UG.WaschmaschineBetrieb on");;\
fhem ("setstate WaschmaschineAutoOff defined");;\
}\
}


Titel: Antw:Dummy's und Notify und Devices
Beitrag von: Otto123 am 20 Januar 2018, 12:53:40
Gib doch mal folgendes in der Kommandozeile von FHEM ein:
{ReadingsVal("Waschmaschine","power","")}

Was bekommst Du zurück?

Jetzt versuche es wie von Dan geschrieben:
{(ReadingsNum("Waschmaschine","power",0)}
Ist da irgendein Unterschied?

Was ist Waschmaschine überhaupt? Hast Du bisher nicht erwähnt.

Gruß Otto

Edit Fehler korrigiert
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 12:57:01
ich bekomme die Wattanzahl zurück 3.49 W aber der Rest funktioniert nicht
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: Otto123 am 20 Januar 2018, 12:58:52
Und kann man Äpfel mit Birnen vergleichen?

3.49 Vergleich mit 4

Und "funktioniert nicht" ist eine sehr sinnfreie Aussage wenn man um Hilfe bittet. :'(
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 13:01:03
das stimmt schon aber angepasst geht es auch nicht.

GHoma_d7a064:power.*
{
fhem ("set WaschmaschineBetrieb on;; setstate WaschmaschineAutoOff defined")
if (ReadingsVal("GHoma_d7a064","power","") >= 3 && Value("WaschmaschineBetrieb") ne "on")

}
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: Otto123 am 20 Januar 2018, 13:06:18
Also nochmal, dann bin ich raus  :'(
{ReadingsVal("GHoma_d7a064","power","")}
versus
{ReadingsNum("GHoma_d7a064","power",0)}
Edit Fehler korrigiert
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 13:10:36
das verstehe ich nicht :-[ was muss ich denn machen??
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 13:11:39
WaschmaschineBetrieb müsste doch auf on gehen, wenn ich dein Code eingebe erhalte ich eine 0 obwohl power 3.49W hat
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: Otto123 am 20 Januar 2018, 13:14:57
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!  :'(
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 13:17:52
also ich gebe das in die fhem komandozeile ein

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

bekomme dann eine 0 zurück
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: Otto123 am 20 Januar 2018, 13:22:51
Habe ich das irgendwo geschrieben? Copy & Paste kaputt?
{ReadingsNum("GHoma_d7a064","power",0)}

Edit Fehler korrigiert "" -> 0
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 13:23:49
ja damit erhalte ich eine 0 zurück
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: Otto123 am 20 Januar 2018, 13:26:10
Und mit {ReadingsVal("GHoma_d7a064","power","")}?

Vielleicht ist der Wert derzeit 0 ?
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 13:30:12
jetzt erhalte ich 3.6 W aber dummy WaschmaschineBetrieb geht nicht auf on. Obwohl der Wert größer 3 ist
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: Otto123 am 20 Januar 2018, 13:39:36
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
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 14:36:07
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");;\
}\
}
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: KernSani am 20 Januar 2018, 14:43:41
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
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 14:52:14
Vielen Dank
bei {ReadingsVal("GHoma_d7a064","power","")}

kommt
3.71

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

kommt auch 
3.71
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: KernSani am 20 Januar 2018, 15:41:34
Ok. 3.71 ist kleiner 4. Damit reagiert das notify richtig... Ändere das notify mal so, dass es was zu tun bekommt
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: Otto123 am 20 Januar 2018, 15:56:48
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.
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: bumbumb am 20 Januar 2018, 15:59:21
Wie soll ich des abändern. Kannst du es mir etwas besser beschreiben. Vielen dank
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: KernSani am 20 Januar 2018, 16:02:29
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 ;-)
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: KernSani am 20 Januar 2018, 16:06:13
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");;

Titel: Antw:Dummy's und Notify und Devices
Beitrag von: Otto123 am 20 Januar 2018, 16:10:34
@KernSani Color geht im Code Tag nicht, wenn er das jetzt einfach übernimmt  ::)
Zitat von: KernSani am 20 Januar 2018, 16:06:13

fhem ("set [color=red][s]UG.[/s][/color]WaschmaschineBetrieb on");;
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: Otto123 am 20 Januar 2018, 16:11:46
Zitat von: KernSani am 20 Januar 2018, 16:02:29
Macht an der Stelle aber eh keinen Unterschied...
Dafür das eine null zurück kam offenbar schon. 
Titel: Antw:Dummy's und Notify und Devices
Beitrag von: KernSani am 20 Januar 2018, 16:14:52
Zitat von: Otto123 am 20 Januar 2018, 16:10:34
@KernSani Color geht im Code Tag nicht, wenn er das jetzt einfach übernimmt  ::)
Ups... angepasst...