FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Peteruser am 13 Juni 2018, 21:08:54

Titel: Homematic Leistungsmesser - gelöst
Beitrag von: Peteruser am 13 Juni 2018, 21:08:54
Hallo,
bin gerade beim Umzug auf meine neue Maschine, nun komme ich bei der Anzeige der Leistung bei dem HomeMatic Funk-Schaltaktor 1-fach mit Leistungsmessung nicht weiter.  Schlimmer noch, bei einem geht es und nun bekomme ich den anderen nicht hin. Es kann aus meiner Sicht nur am Reading liegen, aber wo?

Vorgehensweise war so:
define Trocknersteckdose.Messung HMCCUDEV 0001D709900C50   
define Trocknersteckdose.Messung.Watt dummy
define Trocknersteckdose.MessungWatt notify TrocknersteckdoseMessung {my $var= ReadingsVal("Trocknersteckdose","6.POWER",0);; fhem("set Trocknersteckdosemessung.Watt $var")}
attr Trocknersteckdose.Messung.Watt stateFormat Trocknersteckdosemessung

Evtl. sieht ja einer der Gurus das Problem auf den ersten Blick? Die Dokus und die Tante haben mich nicht weitergebracht, meist wird das dann nicht als Zahlenwert gebraucht, ich möchte aber die Leistungsangabe im Floorplan haben.
Die Steckdose ist über die CCU2 mit FHEM verbunden.

Vorab Danke vom Peter
Titel: Antw:Homematic Leistungsmesser
Beitrag von: nils_ am 14 Juni 2018, 11:23:28
ein list der beteiligten devices (dummy, notify,....) wäre hilfreich.
bitte in code-tags posten. (das # über den smileys!)



wenn ich raten müsste, stimmt was mit deinen "namen" nicht.
einmal punkte im namen, im regex vom notify nicht....
-> list von den devices  ;D
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Peteruser am 14 Juni 2018, 17:39:08
Hallo,
war das so gemeint?

defmod Trocknersteckdose.Messung HMCCUDEV 0001D709900C50
attr Trocknersteckdose.Messung IODev d_ccu

setstate Trocknersteckdose.Messung 1
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 0.DUTY_CYCLE 0
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 0.RSSI_DEVICE -68
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 0.RSSI_PEER -66
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 0.UNREACH 0
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 2.PROCESS 0
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 2.SECTION 2
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 2.STATE 1
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 3.PROCESS 0
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 3.SECTION 2
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 3.STATE 1
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 4.PROCESS 0
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 4.SECTION 0
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 4.STATE 0
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 5.PROCESS 0
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 5.SECTION 0
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 5.STATE 0
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 6.CURRENT 0.0
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 6.ENERGY_COUNTER 48637.9
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 6.ENERGY_COUNTER_OVERFLOW 0
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 6.FREQUENCY 50.01
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 6.POWER 0.02
setstate Trocknersteckdose.Messung 2018-06-14 17:26:41 6.VOLTAGE 230.0


dummy
defmod Trocknersteckdose.Messung.Watt dummy
attr Trocknersteckdose.Messung.Watt stateFormat Trocknersteckdose.WattMessung

setstate Trocknersteckdose.Messung.Watt Trocknersteckdose.WattMessung


notify
defmod Trocknersteckdose.Watt.Messung notify Trocknersteckdose.WattMessung {my $var= ReadingsVal("Trocknersteckdose.Messung","6.POWER",0);; fhem("set Trocknersteckdose.WattMessung $var")}

setstate Trocknersteckdose.Watt.Messung active
setstate Trocknersteckdose.Watt.Messung 2018-06-14 17:36:22 state active


Hoffe, das passt nun so.

Grüße Peter
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Otto123 am 14 Juni 2018, 20:43:32
Hallo Peter,

wenn man nicht  mehr weiter weiß - ruft man Hilfe!

Schon mal help list in der FHEM Kommandozeile versucht?

list Trocknersteckdose.Messung usw. war gemeint.

BTW den Befehl (alles zwischen {} in deinem notify kann man auch so schreiben:
set Trocknersteckdose.WattMessung [Trocknersteckdose.Messung:6.POWER]
Das nennt sich set magic in der Doku.  ;)


Gruß Otto
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Peteruser am 14 Juni 2018, 21:41:18
Hallo,
danke für die Aufklärung.

Internals:
   CFGFN     
   DEF        0001D709900C50
   IODev      d_ccu
   NAME       Trocknersteckdose.Messung
   NR         9387
   STATE      1
   TYPE       HMCCUDEV
   ccuaddr    0001D709900C50
   ccudevstate active
   ccuif      HmIP-RF
   ccuname    trockner
   ccutype    HMIP-PSM
   channels   8
   statevals  devstate
   READINGS:
     2018-06-14 20:59:00   0.DUTY_CYCLE    0
     2018-06-14 20:59:00   0.RSSI_DEVICE   -69
     2018-06-14 20:59:00   0.RSSI_PEER     -84
     2018-06-14 20:59:00   0.UNREACH       0
     2018-06-14 20:59:00   2.PROCESS       0
     2018-06-14 20:59:00   2.SECTION       2
     2018-06-14 20:59:00   2.STATE         1
     2018-06-14 20:59:00   3.PROCESS       0
     2018-06-14 20:59:00   3.SECTION       2
     2018-06-14 20:59:00   3.STATE         1
     2018-06-14 20:59:00   4.PROCESS       0
     2018-06-14 20:59:00   4.SECTION       0
     2018-06-14 20:59:00   4.STATE         0
     2018-06-14 20:59:00   5.PROCESS       0
     2018-06-14 20:59:00   5.SECTION       0
     2018-06-14 20:59:00   5.STATE         0
     2018-06-14 20:59:00   6.CURRENT       0.0
     2018-06-14 20:59:00   6.ENERGY_COUNTER 48637.9
     2018-06-14 20:59:00   6.ENERGY_COUNTER_OVERFLOW 0
     2018-06-14 20:59:00   6.FREQUENCY     49.98
     2018-06-14 20:59:00   6.POWER         0.01
     2018-06-14 20:59:00   6.VOLTAGE       228.4
     2018-06-14 20:59:00   control         1
     2018-06-14 20:59:00   hmstate         1
     2018-06-14 20:59:00   state           1
   hmccu:
     dp:
       0.DUTY_CYCLE:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       0.RSSI_DEVICE:
         OSVAL      -69
         OVAL       -69
         SVAL       -69
         VAL        -69
       0.RSSI_PEER:
         OSVAL      -81
         OVAL       -81
         SVAL       -84
         VAL        -84
       0.UNREACH:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       2.PROCESS:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       2.SECTION:
         OSVAL      2
         OVAL       2
         SVAL       2
         VAL        2
       2.STATE:
         OSVAL      1
         OVAL       1
         SVAL       1
         VAL        1
       3.PROCESS:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       3.SECTION:
         OSVAL      2
         OVAL       2
         SVAL       2
         VAL        2
       3.STATE:
         OSVAL      1
         OVAL       1
         SVAL       1
         VAL        1
       4.PROCESS:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       4.SECTION:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       4.STATE:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       5.PROCESS:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       5.SECTION:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       5.STATE:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       6.CURRENT:
         OSVAL      0.0
         OVAL       0.0
         SVAL       0.0
         VAL        0.0
       6.ENERGY_COUNTER:
         OSVAL      48637.9
         OVAL       48637.9
         SVAL       48637.9
         VAL        48637.9
       6.ENERGY_COUNTER_OVERFLOW:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       6.FREQUENCY:
         OSVAL      49.99
         OVAL       49.99
         SVAL       49.98
         VAL        49.98
       6.POWER:
         OSVAL      0.01
         OVAL       0.01
         SVAL       0.01
         VAL        0.01
       6.VOLTAGE:
         OSVAL      228.2
         OVAL       228.2
         SVAL       228.4
         VAL        228.4
Attributes:
   IODev      d_ccu


Bin mir sicher, da ist nur ein kleiner Wurm in der Syntax beim Erstellen, deswegen das als erstes reingestellt.

Grüße Peter
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Otto123 am 15 Juni 2018, 09:21:29
Moin,

obwohl nicht vollendet - würde ich denken Dein notify ist falsch. So eventuell?
defmod Trocknersteckdose.Watt.Messung notify Trocknersteckdose.Messung set Trocknersteckdose.Messung.Watt [Trocknersteckdose.Messung:6.POWER]


Aus meiner Sicht, bist Du mit Deiner Namensgebung und deren Verwendung völlig durch den Wind.  ;D ::)
Deswegen ist der Code auch wirklich bloß aus dem was Du gepostet hast "geraten".

Gruß Otto
Titel: Antw:Homematic Leistungsmesser
Beitrag von: nils_ am 15 Juni 2018, 10:13:31
Zitat von: Otto123 am 15 Juni 2018, 09:21:29
Aus meiner Sicht, bist Du mit Deiner Namensgebung und deren Verwendung völlig durch den Wind.  ;D ::)
Deswegen ist der Code auch wirklich bloß aus dem was Du gepostet hast "geraten".
die namensgebung verwirrt mich auch ehrlich gesagt  ::)

der fehlerhafte regex war ja anfänglich auch meine vermutung.


du hast uns jetzt schon zwei unterschiedliche notifys gepostet...
welches ist korrekt??
defmod Trocknersteckdose.Watt.Messung notify Trocknersteckdose.WattMessung {my $var= ReadingsVal("Trocknersteckdose.Messung","6.POWER",0);; fhem("set Trocknersteckdose.WattMessung $var")}
define Trocknersteckdose.MessungWatt notify TrocknersteckdoseMessung {my $var= ReadingsVal("Trocknersteckdose","6.POWER",0);; fhem("set Trocknersteckdosemessung.Watt $var")}


ich blicke ehrlich gesagt nicht durch, aber sehr wahrscheinlich gibt es den event/die events nicht auf die du reagieren möchtest.
der punkt in einem regex kann da schon sehr entscheidend sein.
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Otto123 am 15 Juni 2018, 13:01:47
Zitat von: nils_ am 15 Juni 2018, 10:13:31
du hast uns jetzt schon zwei unterschiedliche notifys gepostet...
welches ist korrekt??
Meine Meinung: Keines von Beiden  :-X
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Peteruser am 15 Juni 2018, 16:37:22
Hallo,
stimmt leider, geht immer noch nicht. Das meiste was ich finden konnte sind Verknüpfungen und sonstige Funktionen. Die Ausgabe eines einfachen Wertes scheint keiner zu wollen, das ist aber aus meiner Sicht der Einstieg. Für so etwas konnte ich im Wiki nichts finden.

Einfache Problemstellung : Ausgabe des Wertes des Leistungsmesser über eine CCU2 per FHEM. Wenn es da ein HowTo für Anfänger gibt, währe ich für einen Link dankbar.

Grüße Peter
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Otto123 am 15 Juni 2018, 16:49:55
Hallo Peter,

einfache Frage einfache Antwort -> https://wiki.fhem.de/wiki/Hauptseite
Dort wie fange ich an ...

Aber warum tust Du jetzt dumm und behandelst unsere Fragen wie Luft? Mit: geht immer noch nicht. kann keiner was anfangen und keiner helfen  :-X

Gruß Otto
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Pfriemler am 15 Juni 2018, 17:32:14
Zitat von: Otto123 am 15 Juni 2018, 13:01:47
Meine Meinung: Keines von Beiden  :-X
Obgleich ich mich mit HMCCU (noch) nicht auskenne: Das auslösende Device heißt weder TrocknersteckdoseMessung noch Trocknersteckdose.WattMessung, sondern Trocknersteckdose.Messung.

Aber wenn es tatsächlich so schwierig wird, über eine HMCCU an die Readings/datapoints heranzukommen, lasse ich das mit der CCU doch bleiben  :D

P.S.: es ist sicher anders, aber nicht schwieriger

P.P.S.: den Unterschied zwischen define und defmod sollte man gaaaanz schnell lernen ...
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Otto123 am 15 Juni 2018, 17:38:31
Zitat von: Pfriemler am 15 Juni 2018, 17:32:14
Obgleich ich mich mit HMCCU (noch) nicht auskenne: Das auslösende Device heißt weder TrocknersteckdoseMessung noch Trocknersteckdose.WattMessung, sondern Trocknersteckdose.Messung.
Ich bin exakt dieser Meinung und deswegen auch mein Beispiel :)
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Peteruser am 15 Juni 2018, 19:41:10
Hallo,
die Antwort auf das hier : https://wiki.fhem.de/wiki/Hauptseite verkneife ich mir!

Sorry, aber ich habe klar beschrieben wie ich hierhin gekommen bin und die Antworten von Otto waren nicht wirklich zielführend. Ist hald ein Unterschied zwischen wissen und helfen können. Ich verstehe hier einige, die resigniert aufgegeben haben. Ich werde das hier noch etwas versuchen, sollten andere in den ersten Zeilen den Fehler entdecken würde mich das freuen.

Sollte mir hier jemand noch die Zeilen anbieten, wie bei einer Messsteckdose an die Werte komme dann immer mal her damit. Sprüche wie ...Aber warum tust Du jetzt dumm und behandelst unsere Fragen wie Luft? ... sind aber semioptimal.

Grüße Peter
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Otto123 am 15 Juni 2018, 21:16:40
Hallo Peter,

ich wünsche Dir auch einen schönen Abend.

Mir fiel vorhin noch ein, liefert das Device mit der HMCCU überhaupt Events? Ich habe so was nicht und weiß es einfach nicht.

Sehen könntest Du dies im Eventmonitor -> https://wiki.fhem.de/wiki/Event_monitor
Dort könntest Du auch das notify mit richtigem Syntax und Namen grundlegend erzeugen lassen.
Es steht Dir natürlich frei Hilfe anzunehmen.

Gruß Otto
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Peteruser am 15 Juni 2018, 21:46:46
Hallo,
nach 3 Tagen Frust liegen hier die Nerven ziemlich blank. Der Hinweis war gut, wenn der Trockner nicht aktiv ist dann kommen keine Werte, anscheinend werden die bei neuen Teilen nicht aktiv übernommen.

Das mit den Werten im Log waren die 100 Punkte! Es erscheinen die Werte zwar im Device Overview, sind aber nicht im Dummy zu sehen (Gemeine Sache). Nach dem Start von dem Teil sind die Leistungswerte dann zu sehen.

Die beiden Zeilen reichen also:
define Trockner.Watt dummy
define TrocknerWatt notify Trockner.Messung {my $power =ReadingsVal("Trockner.Messung","6.POWER",0);; fhem ("set Trockner.Watt $power")}

Danke nochmals für den Hinweis auf das Log, das hat mir letzlich geholfen.

Grüße vom Peter
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Otto123 am 15 Juni 2018, 22:11:03
Dieses stateFormat verstehe ich nicht:
Zitatattr Trockner.Watt stateFormat Trockner.Watt
Damit setzt Du meiner Meinung nach den state des dummy immer wieder fest auf den TEXT Trockner.Watt
Zitat Doku:
ZitatstateFormat
Ändert den Gerätestatus, dies ist z.Bsp. in der Ausgabe des list Kommandos zu sehen, oder in der Raumübersicht von FHEMWEB. Falls nicht gesetzt, dann wird das state Reading übernommen. Sonst werden alle Wörter im Wert des Attributes durch das entsprechende Reading des Gerätes ersetzt (soweit vorhanden). Falls der Wert in {} eingeschlossen ist, dann wird es als Perl Ausdruck ausgewertet. Die Auswertung passiert bei jeder Änderung eines Readings.
Die hier beschriebene "set magic" wird auch angewendet.

Macht das Sinn, wolltest Du das so?

Gruß Otto
Titel: Antw:Homematic Leistungsmesser
Beitrag von: Peteruser am 15 Juni 2018, 22:30:35
Hallo,
nein das macht keinen Sinn. Nach dem Löschen ist die Zahl zu sehen.
Nochmal Danke, der Hinweis auf das Log hat letztlich die Lösung gebracht.


Grüße Peter