Hauptmenü

dimplex-abfragen

Begonnen von genpop, 28 März 2025, 08:33:03

Vorheriges Thema - Nächstes Thema

genpop

Hallo,
meine fhem installation läuft ja soweit ganz gut aber die Addition von readings :  attr dim_heating1_thermalenergy userReadings heatingthermalenergy {
                                    ((ReadingsVal("dim_heating3_thermalenergy","state",0)*100000000)+
                                     (ReadingsVal("dim_heating2_thermalenergy","state",0)*10000)+
                                     (ReadingsVal("dim_heating1_thermalenergy","state",0)))}
wird nicht ausgeführt.Es wird nur der Wert von dim_heating1_  angezeigt.Wie ist das bei anderen Anwendern.Kann mal jemand sein komplettes cfg veröffentlichen?Unter:http://<pcoweb>/config/adminpage.html  kann ich die Werte aber sehen!

Nachdem ich im entsprechenden Unterforum keine Reaktion bekommen habe, habe ich meine Frage jetzt mal hier eingestellt.
Ich bin ja Anfänger  :))

Otto123

#1
Hi,

am besten zeigst Du dazu mal die Ausgabe von
list dim_heating1_thermalenergy Bitte die Hinweise hier beachten: https://forum.fhem.de/index.php/topic,71806.0.html

Auf den ersten Blick gibt es zwei Kritikpunkte am Code, die aber wahrscheinlich nicht entscheidend sind:
  • mindestens ein paar Klammern () zuviel.
  • ReadingsNum() anstatt ReadingsVal() nehmen.
Ansonsten bleibt nur die Vermutung, das es keinen Trigger gibt und die Berechnung des userReadings schlicht nicht angestoßen wird.

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

betateilchen

  • Verwende ReadingsNum() statt ReadingsVal() wenn Du mit den Werten mathematisch rechnen möchtest.
  • Verwende nur soviele Klammern wie wirklich nötig sind.
  • Achte darauf, genau so viele Klammern zu schließen wie Du auch öffnest.

{ ReadingsNum("dim_heating3_thermalenergy","state",0)*1.0e+8 +
  ReadingsNum("dim_heating2_thermalenergy","state",0)*1.0e+4 +
  ReadingsNum("dim_heating1_thermalenergy","state",0) }
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: Otto123 am 28 März 2025, 10:04:07Ansonsten bleibt nur die Vermutung, das es keinen Trigger gibt und die Berechnung des userReadings schlicht nicht angestoßen wird.

Dazu brauchst Du keine Vermutungen anstellen, das steht doch schon - ohne code tags - im ersten Beitrag :)

attr dim_heating1_thermalenergy userReadings heatingthermalenergy {..}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

Ja sorry, ich meinte nicht den trigger der die Ausführung des userReadings nur auf die Änderung von bestimmten Readings einschränkt sondern, dass es keine Aktualisierung der Gerätereadings an sich gibt.
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

genpop

Hallo, erst mal Danke, aber ihr müßt euch deswegen nicht streiten, ich werde mal Num statt Val ausprobieren.
Ich habe den code von hier:https://www.fhemwiki.de/wiki/Dimplex_W%C3%A4rmepumpenmanager übernommen und gedacht der ist inzwischen ausgereift und funktioniert.Vielleicht liegt es auch an der neuesten fhem version, kommt ja öfters vor das neuere Versionen nicht mit "altem ccode" zurechtkommen.

betateilchen

Das hat nix mit FHEM oder irgendwelchen Versionen zu tun.
Außerdem streiten wir uns nicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

wir streiten nicht :)

aber wie geht es denn nun weiter? Aus deinem Link ins Wiki kann man zwar den Zusammenhang deines Auszuges mit dem "Gerät" erkennen aber leider nicht ob Deine Gerät überhaupt arbeitet.
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

genpop


Wenn ich mir die fhem.cfg anschaue dann ist der additionsbefehl nach der ersten Klammer abgeschnitten (fehlt) egal ob ich das define dierekt in die fehm.cfg kopiere oder über die Eingabezeile dem Programm hinzufüge.
Auch hier im list am Ende des codes zu sehen:Internals:
   DEF        0 5096
   FUUID      67dbbd20-f33f-3e5d-6162-4ebdc76e29f59ff4
   HeatPumpServer_MSGCNT 1
   HeatPumpServer_TIME 2025-03-29 07:53:43
   IODev      HeatPumpServer
   LASTInputDev HeatPumpServer
   MSGCNT     1
   ModbusRegister_lastRcv 2025-03-29 07:53:43
   NAME       dim_heating1_thermalenergy
   NOTIFYDEV  global
   NR         73
   NTFY_ORDER 50-dim_heating1_thermalenergy
   STATE      7112
   TYPE       ModbusRegister
   eventCount 1
   lastUpdate
   nextUpdate Sat Mar 29 08:08:43 2025
   READINGS:
     2025-03-29 07:38:43   IODev           HeatPumpServer
     2025-03-29 07:53:43   RAW             1bc8
     2025-03-29 07:53:43   state           7112
   helper:
     addr       3 0 5096
     address    5096
     disableRegisterMapping 0
     lastUpdate 0
     nextUpdate 1743232123.43244
     nread      1
     readCmd    ␃␓�␁
     register   5096
     registerType 3
     unitId     0
     updateIntervall 900
     cnv:
       a          1
       b          0
       max        32767
       min        -32768
       step       100
Attributes:
   IODev      HeatPumpServer
   event-on-change-reading .*
   plcDataType INT
   registerType Holding
   room       Dimplex
   updateInterval 00:15:00
   userReadings heatingthermalenergy {

genpop

#9
Anbei noch die Historie in verschiedenen Ansichten.In Bild 3 habe ich den Wert rot umrandet! Außerdem die fhem.cfg mit dem fehlenden Additionsbefehl in den Zeilen 249,258 und 266.

Otto123

#10
Dann nimm bitte diese Zeile und wirf sie in die FHEM Kommandozeile und drücke enter
attr dim_heating1_thermalenergy userReadings heatingthermalenergy { ReadingsNum("dim_heating3_thermalenergy","state",0)*1.0e+8 + ReadingsNum("dim_heating2_thermalenergy","state",0)*1.0e+4 + ReadingsNum("dim_heating1_thermalenergy","state",0) }
Zeilenumbrüche kannst Du später im DEF Editor machen.
Die fhem.cfg solltest Du besser von FHEM verwalten lassen und nicht per Hand editieren.

Das von Dir zitierte Wiki ist an dieser Stelle nicht für Anfänger geschrieben. Der gedruckte Code ist zwar lesbar, aber es nicht klar beschrieben wie der einzugeben ist.
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

genpop

Das war leider nicht die Lösung :(

Otto123

Für was?
Steht das userReadings immer noch verstümmelt da? Oder wird es nicht berechnet?

Gibt es etwas im Log?
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

betateilchen

#13
defmod dim_heating1_thermalenergy dummy
set dim_heating1_thermalenergy 1
attr dim_heating1_thermalenergy userReadings heatingthermalenergy { ReadingsNum("dim_heating3_thermalenergy","state",0)*1.0e+8 + ReadingsNum("dim_heating2_thermalenergy","state",0)*1.0e+4 + ReadingsNum("dim_heating1_thermalenergy","state",0) }

defmod dim_heating2_thermalenergy dummy
set dim_heating1_thermalenergy 2

defmod dim_heating3_thermalenergy dummy
set dim_heating1_thermalenergy 3

Danach haben die drei dummy-devices die states 1 2 und 3.

Wenn ich jetzt nochmal

set dim_heating1_thermalenergy 1
ausführe, entsteht im device "dim_heating1_thermalenergy"
das gewünschte userReading "heatingthermalenergy" mit dem Wert 300020001

setstate dim_heating1_thermalenergy 2025-03-30 12:30:26 heatingthermalenergy 300020001
Der vorgeschlagene code für das Attribut userReadings funktioniert also wie gewünscht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: genpop am 30 März 2025, 09:12:51Das war leider nicht die Lösung :(

Beschreibe doch bitte erst einmal die genaue Aufgabe, die Du eigentlich lösen möchtest.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!