Kopieren eines Wert einer Variablen in eine andere

Begonnen von theotherhalf, 06 Dezember 2018, 16:41:59

Vorheriges Thema - Nächstes Thema

theotherhalf

Hallo!

Ich möchte gerne den Wert eines One-Wire Sensors in eine Variable schreiben, die dann zur Homematic CCU gesendet wird.

Sensorname: Speicher_max
Zielvariable: Temperatur_Pufferspeicher_max

Meine Kenntnisse sind recht rudimentär, was die korrkete Syntax angeht. So wie hier unten funktioniert es leider nicht... :-[

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

Könnt ihr mir eine Hilfestellung geben wie es korrekt lauten muss? Danke!
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

Beta-User

Nicht ganz sicher, aber vermutlich solltest du den Übergabewert erst in eine Variable packen. So etwa:

{ my $MTemp = ReadingsVal("Speicher_max","temperature","");; fhem "set CCU var Temperatur_Pufferspeicher_max $MTemp"}

Anmerkung: wenn das bei jeder Aktualisierung sein soll, könntest du ein notify auf den Job ansetzen und dann mit $EVENT arbeiten.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Wuppi68

siehe commandref für set ...

set Lamp blink [blinkDummy:number] [r:blinkDummy:duration:d]

-->

set CCU var Temperatur_Pufferspeicher_max [Speicher_max:temperature]
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

theotherhalf

Danke euch!

Habe es jetzt so programmiert:

define Speicher_max_Temperatur_zur_HomematicCCU_Systemvariable at +*00:05 { my $MTemp = ReadingsVal("Speicher_max","temperature","");; fhem "set CCU var Temperatur_Pufferspeicher_max $MTemp"}

Der Puffer ist ein träges Gebilde, alle 5 Minuten Übertrag sollten reichen.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

Beta-User

Zitat von: theotherhalf am 06 Dezember 2018, 17:04:57
Der Puffer ist ein träges Gebilde, alle 5 Minuten Übertrag sollten reichen.
Ebend... Da sind schon 5 Min eher kurz, oder?

Grundsätzlich arbeitet FHEM eigentlich eher event-basiert, es wird also auf Input von außen reagiert (und am besten dann noch nur dann, wenn sich auch was geändert hat...).

Daher der folgende Vorschlag: nicht alle 5 Minuten stur schreiben (at), sondern alle 5 Minuten nur den Sensor abfragen (der hat ja irgendein Intervall, in dem er aktualisiert, oder?).
Dann noch einen Änderungsschwellwert drauf (event-on-change-reading mit 0.5-er Hysterese, ggf. "optimiert" mit mind. 1x pro Stunde Aktualisierung). Auf die Sensorwert-Änderung dann (statt des at) ein notify reagieren lassen, das den neuen Wert dann an die CCU weitergibt.

Selbes faktisches Ergebnis, aber weniger Schreibvorgänge bzw. effektives Datenhandling.

Nur als Anregung...
Und man kann (so oder so) auch den einfachen FHEM-Code nutzen (mit $EVENT im notify), wie wuppi68 zurecht angemerkt hat...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

JoWiemann

Hm, dafür gibt es doch notify. Und wer es kompliziert möchte nimmt doif.


Gesendet von iPhone mit Tapatalk

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Damian

#6
Zitat von: JoWiemann am 06 Dezember 2018, 17:21:12
Hm, dafür gibt es doch notify. Und wer es kompliziert möchte nimmt doif.


Gesendet von iPhone mit Tapatalk

Grüße Jörg

Oder auch einfacher:

define di_var DOIF {fhem_set "CCU var Temperatur_Pufferspeicher_max ".[Speicher_max:temperature]}

Edit: P.S. ohne Attribute und der Event-Trigger ist auch schon definiert
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

theotherhalf

Vielen Dank euch allen.
Für den Moment bin ich erst mal zufrieden dass alles läuft.

Ich werde mich aber die Tage gerne an die Optimierung begeben, dann habe ich sicher noch einige Fragen.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung