Hauptmenü

Variablen

Begonnen von sylvester, 06 Oktober 2022, 08:06:25

Vorheriges Thema - Nächstes Thema

sylvester

Hallo,

ich habe eine Frage zur Heizungssteuerung.
Aktuell setze ich die Temperatur folgendermaßen:


{fhem("set WC_Fussboden desired-temp  10")}


Ist es möglich, am Anfang der config-Datei eine Art Variable zu definieren und die dann im Set-Befehl zu nutzen?
Ich möchte auf diese Weise verschiedene Temperaturen wie Komfort, Lüften, Absenkung zentral definieren und ändern können ...

Vielen Dank für eure Hilfe

Stephan

jhohmann

Du könntest dir an diesem Device oder am Device global oder an einem Dummy eigene passende Readings definieren und diese dann verwenden.
Ich mache was ähnliches, um den Dim-Wert einer Lampe zu setzen.
fhem("set CouchLampe dim".ReadingsNum("Tag","CouchLampeDim", 90));
Z.B.:
setreading global WC_Fussboden 15
und dann analog meinem Beispiel dann nutzen.
Raspberry Pi 4 - bookworm / EnOcean - Rollo+Licht, deCONZ - Licht+Sensoren, ZWave - CO Messung, HMCCU mit piVCCU - Heizung+Rollo
plus dovecot, minidlna

Beta-User

Zitat von: sylvester am 06 Oktober 2022, 08:06:25
Ist es möglich, am Anfang der config-Datei eine Art Variable zu definieren und die dann im Set-Befehl zu nutzen?
Zum einen ist dringlich davon abzuraten, die config-Datei manuell zu editieren!

Wenn du unbedingt was in der config speichern willst, geht das über Attribute, Initialwerte könnten z.B. auch über ein global:INITIALIZED-notify gesetzt werden (dafür käme dann z.B. auch die globale Datenstruktur unter %data in Frage).

Der (von jhomann) vorgeschlagene Weg über Readings speichert das dann woanders (statefile), geht auch.

Zitat
Ich möchte auf diese Weise verschiedene Temperaturen wie Komfort, Lüften, Absenkung zentral definieren und ändern können ...
Wenn es um Temperatur(profile) geht, könntest du dir auch weekprofile mal ansehen, Lüften könnte da ein "topic" sein.

Was ähnliches wäre auch mit LightScene oder structure zu erreichen.
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

Jamo

2 Möglichkeiten:

1) in der 99_MyUtils.pm: use constant {
  Temp1      => 25,
  Temp2      => 22}
dann der Aufruf:fhem ('set WC_Fussboden desired-temp '.+Temp1);


2) ein device , z.B.defmod GlobalConstants dummy
attr GlobalConstants WCTemp:20,21,22,23 Temp1 Temp2

dann der Aufruf:fhem ('set WC_Fussboden desired-temp '.AttrNum('GlobalConstants','WCTemp',2.5));
alternativ:
my $temperatur = AttrNum('GlobalConstants','WCTemp',22.5)
fhem ("set WC_Fussboden desired-temp $temperatur");
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence