Zwei Dummy Werte addieren und in dritten Dummy schreiben, finde den Fehler nicht

Begonnen von Jupedi, 20 Dezember 2017, 16:10:44

Vorheriges Thema - Nächstes Thema

Jupedi

Hallo zusammen

Um die Abweichung zwischen der von der Heizung gemessenen Vorlauftemperatur und der von mir mittels HomeMatic Sensor gemessenen zu korrigieren, habe ich drei Dummys erstellt.

In den ersten <1_Vorlauftemperatur > schreibt eine Notification die gemessene Vorlauftemperatur. Der STATE enthält die richtige Zahl.
Der zweite <1_Vorlauftemperaturkorrekturwert> enthält den Offset. Auch hier ist im STATE die gewünschte Zahl.
In <1_Vorlauftemperatur_korrigiert> soll das Ergebnis der Summe geschrieben werden. Enthält nur ???

Dazu habe ich diese Notification erstellt

DEF:  { fhem("set 1_Vorlauftemperatur_korrigiert".(Value("1_Vorlauftemperaturkorrekturwert")+Value("1_Vorlauftemperatur"))) }



Kann den Fehler leider nicht finden, Syntax, groß/klein.   :(

Vielleicht wäre jemand so nett und schaut mal drüber.
Raspberry 3, CUL Eigenbau(nano,cc1101),
Jeelink
Mediola/Neo Fernbedienung, NET-IO230B, Intertechno Zeug,, itach, Fritzbox7490 (m-net Fw).
  Homematic: HM CCU2, PROCRPC, Thermostate,  Wassermelder aus Fensterkontakten, usw.
Home Entertainment: VU+, SamsungTV, YamahaAVR, OPPO

igami

Zitat von: Jupedi am 20 Dezember 2017, 16:10:44
DEF:   { fhem("set 1_Vorlauftemperatur_korrigiert".(Value("1_Vorlauftemperaturkorrekturwert")+Value("1_Vorlauftemperatur"))) }
Ist das die vollständige DEF?

PS: bitte code-Tags verwenden (das # über den Smileys)
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Beta-User

Warum das wieder so viele Dummies sein sollen (und keine userattr), erschließt sich mir mal wieder nicht, aber der Fehler scheint mir daher zu kommen, dass ein Leerzeichen fehlt, der das Zieldevice vom Wert trennt (wieder die Frage, warum das Ergebnis nicht in einem userattr landet oder das ganze mit userreadings gelöst wird).

{ fhem("set 1_Vorlauftemperatur_korrigiert ".(Value("1_Vorlauftemperaturkorrekturwert")+Value("1_Vorlauftemperatur"))) }

Ansonsten: Code gehört in code-tags (# oberhalb der smilies) und testen kann man perl-code, indem man ihn in das command-Feld eingibt - dann erhält man ggf. auch eine Rückmeldung...

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Jupedi

sorry für die code Geschichte!

Ja, das ist die ganze DEF.

Warum Dummy? Ganz einfach, weil zur Zeit noch froh bin überhaupt einen Weg zu haben, der mich ans Ziel bringt.
Für die Feinheiten reichte noch es nicht.

Leerzeichen nach dem Pkt hinter dem Ziel meinst du? Du meinst hier:     ... korrigiert". hier(Value(...
Raspberry 3, CUL Eigenbau(nano,cc1101),
Jeelink
Mediola/Neo Fernbedienung, NET-IO230B, Intertechno Zeug,, itach, Fritzbox7490 (m-net Fw).
  Homematic: HM CCU2, PROCRPC, Thermostate,  Wassermelder aus Fensterkontakten, usw.
Home Entertainment: VU+, SamsungTV, YamahaAVR, OPPO

CoolTux

Für ein Notify fehlt Dir aber noch einiges, so zum Beispiel die RegEx zum triggern. Am besten noch mal in der Commandref blättern wie der allgemeine Aufbau eines Notify DEF ist.
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

Jupedi

ja, klar es fehlt das <Suchmuster>, aber wie formuliere ich das jetzt in dem Fall?

1_Vorlauftemperatur:1.TEMPERATURE.* { fhem("set 1_Vorlauftemperatur_korrigiert"(Value("1_Vorlauftemperaturkorrekturwert")+Value("$EVENT"))) }

so gehts wohl nicht. Hätte gern, dass jede Änderung der Vorlauftemperatur übergeben und korrigiert wird
Raspberry 3, CUL Eigenbau(nano,cc1101),
Jeelink
Mediola/Neo Fernbedienung, NET-IO230B, Intertechno Zeug,, itach, Fritzbox7490 (m-net Fw).
  Homematic: HM CCU2, PROCRPC, Thermostate,  Wassermelder aus Fensterkontakten, usw.
Home Entertainment: VU+, SamsungTV, YamahaAVR, OPPO

CoolTux

Was genau heißt geht nicht? Löst das Notify nicht aus?

Gib Mal bitte ein list von 1_Vorlauftemperatur
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

Jupedi

Internals:
   NAME       1_Vorlauftemperatur
   NR         183
   STATE      1.TEMPERATURE: 52.5
   TYPE       dummy
   READINGS:
     2017-12-20 22:47:54   state           1.TEMPERATURE: 52.5
Attributes:
   room       Heizung,dummies


Kann es sein, dass nicht nur der Zahlenwert, sondern auch <1.TEMPERATURE:> mit übergeben wird und damit natürlich nicht gerechnet werden kann?
Raspberry 3, CUL Eigenbau(nano,cc1101),
Jeelink
Mediola/Neo Fernbedienung, NET-IO230B, Intertechno Zeug,, itach, Fritzbox7490 (m-net Fw).
  Homematic: HM CCU2, PROCRPC, Thermostate,  Wassermelder aus Fensterkontakten, usw.
Home Entertainment: VU+, SamsungTV, YamahaAVR, OPPO

Jupedi

das ist die Fehlermeldung:

Unknown command 1_Vorlauftemperatur:1.TEMPERATURE.*, try help.
Raspberry 3, CUL Eigenbau(nano,cc1101),
Jeelink
Mediola/Neo Fernbedienung, NET-IO230B, Intertechno Zeug,, itach, Fritzbox7490 (m-net Fw).
  Homematic: HM CCU2, PROCRPC, Thermostate,  Wassermelder aus Fensterkontakten, usw.
Home Entertainment: VU+, SamsungTV, YamahaAVR, OPPO

CoolTux

Bitte Log oder Code oder solche lists immer in Codetags. Oben in der Symbolleiste das Rautezeichen.

Da ist vieles durcheinander. Der Wert von state ist nicht zu gebrauchen. Wer wie oder was setzt diesen Wert? Gib Mal bitte davon ein list.
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

franky08

Uups, wenn man das schon so kompliziert macht, dann doch in die 99_myUtils auslagern, da lässt sich so etwas recht entspannt anlegen und zurück schreiben. Kann iMo kein Beispiel posten da ich mit dem Tablett unterwegs bin. Aber du kannst in der Utils über ReadingsVal deine Daten auslesen, berechnen und zurück schreieben oder wie schon erwähnt über eun User Reading.

Vg
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

Jupedi

Der Wert kommt vom Homematic Sensor
Internals:
   DEF        OEQ0802459
   IODev      d_ccu
   NAME       HM_Heizung_VorRuecklauf_Messer
   NR         219
   STATE      Initialized
   TYPE       HMCCUDEV
   ccuaddr    OEQ0802459
   ccudevstate active
   ccuif      BidCos-RF
   ccuname    HM-Heizung_VorRuecklauf-Messer
   ccutype    HM-WDS30-OT2-SM-2
   channels   6
   firmware   1.2
   statevals  devstate
   READINGS:
     2017-12-20 23:10:45   0.LOWBAT        0
     2017-12-20 23:10:45   1.LOWBAT        0
     2017-12-20 23:10:45   1.TEMPERATURE   46.7
     2017-12-20 23:10:45   2.LOWBAT        0
     2017-12-20 23:10:45   2.TEMPERATURE   46.5
     2017-12-20 23:10:45   3.LOWBAT        0
     2017-12-20 23:10:45   3.TEMPERATURE   0.2
     2017-12-20 23:10:45   4.LOWBAT        0
     2017-12-20 23:10:45   4.TEMPERATURE   -0.2
     2017-12-20 23:10:45   5.LOWBAT        0
     2017-12-10 18:10:49   5.TEMPERATURE   0.0
     2017-12-10 18:10:49   activity        false
     2017-12-20 23:10:45   hmstate         Initialized
     2017-12-10 18:10:16   state           Initialized
   hmccu:
     dp:
       0.CONFIG_PENDING:
         OVAL       false
         VAL        false
       0.DEVICE_IN_BOOTLOADER:
         OVAL       false
         VAL        false
       0.LOWBAT:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       0.RSSI_DEVICE:
         OVAL       1
         VAL        1
       0.RSSI_PEER:
         OVAL       180
         VAL        180
       0.STICKY_UNREACH:
         OVAL       false
         VAL        false
       0.UNREACH:
         OSVAL      false
         OVAL       false
         SVAL       false
         VAL        false
       0.UPDATE_PENDING:
         OVAL       false
         VAL        false
       1.LOWBAT:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       1.TEMPERATURE:
         OSVAL      47.8
         OVAL       47.800000
         SVAL       46.7
         VAL        46.700000
       2.LOWBAT:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       2.TEMPERATURE:
         OSVAL      47.5
         OVAL       47.500000
         SVAL       46.5
         VAL        46.500000
       3.LOWBAT:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       3.TEMPERATURE:
         OSVAL      0.3
         OVAL       0.300000
         SVAL       0.2
         VAL        0.200000
       4.LOWBAT:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       4.TEMPERATURE:
         OSVAL      -0.3
         OVAL       -0.300000
         SVAL       -0.2
         VAL        -0.200000
       5.LOWBAT:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       5.TEMPERATURE:
         OSVAL      0.0
         OVAL       0.000000
         SVAL       0.0
         VAL        0.000000
Attributes:
   IODev      d_ccu
   ccureadingfilter TEMPERATURE
   room       HomeMatic
   stripnumber 1


wird mit der Notification

Internals:
   CFGFN     
   DEF        HM_Heizung_VorRuecklauf_Messer:1.TEMPERATURE.* set 1_Vorlauftemperatur $EVENT
   NAME       n_1_Vorlauftemperatur
   NOTIFYDEV  HM_Heizung_VorRuecklauf_Messer
   NR         5119
   NTFY_ORDER 50-n_1_Vorlauftemperatur
   REGEXP     HM_Heizung_VorRuecklauf_Messer:1.TEMPERATURE.*
   STATE      2017-12-20 23:15:57
   TYPE       notify
   READINGS:
     2017-12-20 22:22:36   state           active
Attributes:
   room       Heizung,notifications 



an    1_Vorlauftemperatur.   

  Internals:
   NAME       1_Vorlauftemperatur
   NR         183
   STATE      1.TEMPERATURE: 44.4
   TYPE       dummy
   READINGS:
     2017-12-20 23:18:14   state           1.TEMPERATURE: 44.4
Attributes:
   room       Heizung,dummies 


übergeben.

Hilft das so?
Raspberry 3, CUL Eigenbau(nano,cc1101),
Jeelink
Mediola/Neo Fernbedienung, NET-IO230B, Intertechno Zeug,, itach, Fritzbox7490 (m-net Fw).
  Homematic: HM CCU2, PROCRPC, Thermostate,  Wassermelder aus Fensterkontakten, usw.
Home Entertainment: VU+, SamsungTV, YamahaAVR, OPPO

CoolTux

Bleiben wir der Einfachheit halber erstmal bei Deinem mehrfach Dummy bau. Können es später ja noch ändern.


HM_Heizung_VorRuecklauf_Messer:1.TEMPERATURE.* set 1_Vorlauftemperatur $EVENT


Dein Problem ist das Du das ganze Event mit übergibst. Das beinhaltet aber hier auch den Namen des Readings. Am besten hier gleich nur den 2 Teil des Events mit geben.


HM_Heizung_VorRuecklauf_Messer:1.TEMPERATURE.* set 1_Vorlauftemperatur $EVTPART1

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

Und dann sollte das gehen


1_Vorlauftemperatur.* { fhem("set 1_Vorlauftemperatur_korrigiert " . Value("1_Vorlauftemperaturkorrekturwert")+$EVENT) }
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

Jupedi

Erst mal vielen Dank!
Ich probiere es morgen (heute) aus und sage bescheid.
Raspberry 3, CUL Eigenbau(nano,cc1101),
Jeelink
Mediola/Neo Fernbedienung, NET-IO230B, Intertechno Zeug,, itach, Fritzbox7490 (m-net Fw).
  Homematic: HM CCU2, PROCRPC, Thermostate,  Wassermelder aus Fensterkontakten, usw.
Home Entertainment: VU+, SamsungTV, YamahaAVR, OPPO