FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: theotherhalf am 05 Dezember 2018, 10:57:32

Titel: Schreiben auf Systemvariable in CCU mit HMCCU
Beitrag von: theotherhalf am 05 Dezember 2018, 10:57:32
Hallo!
Ich habe das Modul HMCCU schon seit langer Zeit im Einsatz um Zustände aus der CCU auszulesen und in einem Floorplan anzuzeigen. Das klappt soweit sehr gut und stabil.

Nun möchte ich über HMCCU mehrere Systemvariablen, die ich in der CCU angelegt habe beschreiben.
Ich habe versucht die Devices in FHEM anzulegen, aber irgendwie gelingt es mir nicht recht.

Könnt ihr mir einen Wink geben wie es richtig sein muss?
Ausprobiert habe ich:

define Pufferspeicher_minmin_thermisch_voll HMCCUDEV Pufferspeicher_minmin_thermisch_voll

Aber das schlägt schon fehl mit der Meldung:  Cannot detect IO device

Die Meldung selbst soll in FHEM generiert werden aus einer Temperatur, angschlossen über GPIO, wenn diese oberhalb von 75°C liegt.

Gelten für Systemvariablen nicht HMCCUDEV?
Titel: Antw:Schreiben auf Systemvariable in CCU mit HMCCU
Beitrag von: theotherhalf am 05 Dezember 2018, 16:30:14
Bin nach einiger Zeit Recherche nun drauf gestossen. Mit:

set CCU var Pufferspeicher_max_thermisch_voll    und dem Wert 1 oder 0 am Ende kann ich die Variable aus FHEM setzen.

Könnt ihr mir einen Hinweis geben wie ich das nun sinnvollerweise und am einfachsten mit den GPIO Temperaturfühlern verknüpfe? Habe keine Erfahrung mit Skripten.... :-[
Titel: Antw:Schreiben auf Systemvariable in CCU mit HMCCU
Beitrag von: theotherhalf am 05 Dezember 2018, 20:00:05
...und schon wieder einen Schritt weiter...  :)

Mit dem Kommando:  set CCU var Pufferspeicher_maxmax_thermisch_voll 0        oder        set CCU var Pufferspeicher_maxmax_thermisch_voll 1        schaffe ich es die Variable manuell zu setzen.

Mit dem Kommando:   define Speicher_maxmax_zur_HomematicCCU_Systemvariable at +*00:03 { if ( "Speicher_maxmax" ge "70" ) { fhem("set CCU var Pufferspeicher_maxmax_thermisch_voll 1") } else { fhem("set CCU var Pufferspeicher_maxmax_thermisch_voll 0")}}   habe ich das Device setzen können und eine zeitliche Abfrage triggern können. Der Wert des Sensors ist derzeit 55°C und es wird dennoch eine "1" gesendet.

Was mache ich noch falsch?
Titel: Antw:Schreiben auf Systemvariable in CCU mit HMCCU
Beitrag von: theotherhalf am 05 Dezember 2018, 20:51:08
und noch einen Fehler entdeckt

define Speicher_maxmax_zur_HomematicCCU_Systemvariable at +*00:03 { if ( "Speicher_maxmax:temperature" ge "75" ) { fhem("set CCU var Pufferspeicher_maxmax_thermisch_voll 1") } else { fhem("set CCU var Pufferspeicher_maxmax_thermisch_voll 0")}}

Hatte das :temperature nach dem Sensor vergessen. Dennoch wird alle 3 Minuten eine "1" gesendet. Bei einem derzeitigen Wert des Sensors von 61 Grad sollte 0 gesendet werden, oder?

Es wäre wirklich toll wenn einer von euch Profis mir einen Hinweis geben könnte. Danke!
Titel: Antw:Schreiben auf Systemvariable in CCU mit HMCCU
Beitrag von: zap am 05 Dezember 2018, 21:50:53
Die 75 mal ohne ,," angeben?
Um den Fehler bei HMCCU auszuschließen, setze den Wert 1 oder 0 mal bei einem Dummy Device. Wenn es da auch nicht funktioniert, solltest du deine Frage in einem anderen Unterforum stellen
Titel: Antw:Schreiben auf Systemvariable in CCU mit HMCCU
Beitrag von: theotherhalf am 05 Dezember 2018, 22:10:26
Die " " waren es auch nicht....

Haben eben mal die bedingung von ge auf lt geändert. Prompt war das Ergebnis 0, also ein Sprung in die else Klammer.
Ich denke, dass mit der Syntax etwas nicht stimmt.

btw: Wenn ich den Wert des GPIO Sensors als Zahl in die CCU schieben will, wie wäre dann der befehl wenn das alle 3 Minuten ablaufen soll. So ?

set CCU var Pufferspeicher_max_thermisch_voll Speicher_max:temperature

Es kommt nämlich in der CCU nichts an
Titel: Antw:Schreiben auf Systemvariable in CCU mit HMCCU
Beitrag von: zap am 06 Dezember 2018, 07:30:26
es kommt nichts an, weil versucht wird, in den Text Speicher_max:temperature in eine vermutlich nummerische CCU Systemvariable zu schreiben.
set var wertet den Ausdruck nicht vor der Ausführung aus. Du musst Dir den set Befehl vorher selbst zusammenbauen und zB ReadingsVal verwenden, um dem Readingwert zu ermitteln.
Titel: Antw:Schreiben auf Systemvariable in CCU mit HMCCU
Beitrag von: theotherhalf am 06 Dezember 2018, 11:02:05
kannst du mir etwas auf die Sprünge helfen?

Es sollte der Wert des One Wire Sensors  "Speicher_max  Temperatur" auf die CCU Systemvariable "Pufferspeicher_max_Temperatur" geschrieben werden.

Die Systemvariable in der CCU ist als "Zahl" definiert.
Titel: Antw:Schreiben auf Systemvariable in CCU mit HMCCU
Beitrag von: zap am 06 Dezember 2018, 11:39:54

sowas halt

fhem("set CCU var ...." .  ReadingsVal(...))
Titel: Antw:Schreiben auf Systemvariable in CCU mit HMCCU
Beitrag von: theotherhalf am 06 Dezember 2018, 12:19:05
Du meinst so?

{ fhem("set CCU var Temperatur_Pufferspeicher_max" .  ReadingsVal("Speicher_max","temperature",""))}
Titel: Antw:Schreiben auf Systemvariable in CCU mit HMCCU
Beitrag von: zap am 06 Dezember 2018, 17:17:34
Zitat von: theotherhalf am 06 Dezember 2018, 12:19:05
Du meinst so?

{ fhem("set CCU var Temperatur_Pufferspeicher_max" .  ReadingsVal("Speicher_max","temperature",""))}

Fast:

{ fhem("set CCU var Temperatur_Pufferspeicher_max " .  ReadingsVal("Speicher_max","temperature",0))}

Noch ein Leerzeichen nach _max ergänzt und Default für ReadingsVal auf Zahl gesetzt.
Titel: Antw:Schreiben auf Systemvariable in CCU mit HMCCU
Beitrag von: Wuppi68 am 06 Dezember 2018, 19:21:01
ist nen klassischer Doppelpost ... der andere Fred ist schon gelöst