Zuweisung des Wertes einer Dummy Variable in einem 'notify' oder 'at'

Begonnen von mcchina, 15 August 2025, 12:47:32

Vorheriges Thema - Nächstes Thema

mcchina

hallo
was einfaches.

Ich möchte in einem 'notify' einer Dummy Variablen (hier: testDummy) den Wert einer anderen Dummy Variablen (hier 'irrigationToday') zuweisen. Was super einfach ist bekomme ich nicht hin:


MaxTempToday:.* set testDummy ReadingsNum("irrigationToday","state", 0.7)


Bei Ausführung mit 'trigger' wird dem Dummy der ganze String ("ReadingsNum("irrigationToday","state", 0.7)") zugeordnet und nicht der Wert? Habe natürlich schon in CommandRef etc gesucht ....

/vielen Dank, andreas.

---------------------------------------------------
raspi mit FHEM & Teslalogger, HTTPMod für Resol Datenlogger, diverse 433Mhz Funker, ShellyEM3, ShellyEM

Beta-User

Zitat von: mcchina am 15 August 2025, 12:47:32hallo
was einfaches.

Ich möchte in einem 'notify' einer Dummy Variablen (hier: testDummy) den Wert einer anderen Dummy Variablen (hier 'irrigationToday') zuweisen. Was super einfach ist bekomme ich nicht hin:


MaxTempToday:.* set testDummy ReadingsNum("irrigationToday","state", 0.7)


Bei Ausführung mit 'trigger' wird dem Dummy der ganze String ("ReadingsNum("irrigationToday","state", 0.7)") zugeordnet und nicht der Wert? Habe natürlich schon in CommandRef etc gesucht ....

/vielen Dank, andreas.


a) dummy-Informations-Geschubse ist erfahrungsgemäß wenig zielführend. Würde das anders lösen, was auch immer es ist...
b) entweder du verwendest "richtiges Perl", oder "set magic" (=>commandref). Solche beliebigen Mischungen gehen jedenfalls nicht.
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

mcchina

Zitat von: Beta-User am 15 August 2025, 13:00:37
Zitat von: mcchina am 15 August 2025, 12:47:32hallo
was einfaches.

Ich möchte in einem 'notify' einer Dummy Variablen (hier: testDummy) den Wert einer anderen Dummy Variablen (hier 'irrigationToday') zuweisen. Was super einfach ist bekomme ich nicht hin:


MaxTempToday:.* set testDummy ReadingsNum("irrigationToday","state", 0.7)


Bei Ausführung mit 'trigger' wird dem Dummy der ganze String ("ReadingsNum("irrigationToday","state", 0.7)") zugeordnet und nicht der Wert? Habe natürlich schon in CommandRef etc gesucht ....

/vielen Dank, andreas.


a) dummy-Informations-Geschubse ist erfahrungsgemäß wenig zielführend. Würde das anders lösen, was auch immer es ist...
b) entweder du verwendest "richtiges Perl", oder "set magic" (=>commandref). Solche beliebigen Mischungen gehen jedenfalls nicht.


aha, danke. Was meinst Du mit "Mischungen", ReadingsNum() ist doch eine fhem Funktion, die ich anscheinend im dem 'set' command nicht ansprechen kann? Also, wie erhalte ich den 'Wert'(state) einer Dummy Variable?

Ich möchte die Dummy Umschreibung ("Geschubse") in einem 'at' nutzen, um eine Historie über einige Werte zu speichern (für gestern und vorgestern).
---------------------------------------------------
raspi mit FHEM & Teslalogger, HTTPMod für Resol Datenlogger, diverse 433Mhz Funker, ShellyEM3, ShellyEM

Nobbynews

Zitat von: mcchina am 15 August 2025, 13:53:38ReadingsNum() ist doch eine fhem Funktion, die ich anscheinend im dem 'set' command nicht ansprechen kann? Also, wie erhalte ich den 'Wert'(state) einer Dummy Variable?

Ich möchte die Dummy Umschreibung ("Geschubse") in einem 'at' nutzen, um eine Historie über einige Werte zu speichern (für gestern und vorgestern).
Und damit ist es Perl.
Genau das meinte @Beta-User.
Richtig wäre:
MaxTempToday:.* {fhem ("set testdummy ".ReadingsNum("irrigationToday","state",0,7)}
Und warum die Historie nicht in Readings ablegen anstatt dummy?

mcchina

Zitat von: Nobbynews am 15 August 2025, 14:35:13
Zitat von: mcchina am 15 August 2025, 13:53:38ReadingsNum() ist doch eine fhem Funktion, die ich anscheinend im dem 'set' command nicht ansprechen kann? Also, wie erhalte ich den 'Wert'(state) einer Dummy Variable?

Ich möchte die Dummy Umschreibung ("Geschubse") in einem 'at' nutzen, um eine Historie über einige Werte zu speichern (für gestern und vorgestern).
Und damit ist es Perl.
Genau das meinte @Beta-User.
Richtig wäre:
MaxTempToday:.* {fhem ("set testdummy ".ReadingsNum("irrigationToday","state",0,7)}
Und warum die Historie nicht in Readings ablegen anstatt dummy?



Danke, das funktioniert.
Meine Überlegung war, das Verschieben der Daten (->Gestern->Vorgestern) einmal am Ende des Tages auszuführen, per 'at'. Als UserReading im liefernden Device würde das auch Code erfordern und macht die Sache für mich unübersichtlich.

Danke für die schnellen Tipps!
---------------------------------------------------
raspi mit FHEM & Teslalogger, HTTPMod für Resol Datenlogger, diverse 433Mhz Funker, ShellyEM3, ShellyEM

RalfRog

Naja, wenn es darum geht einen Wert in ein "neues" Reading zu schreiben kannst du dir einfach für das Device ein Reading ausdenken z.B. Gestern oder Vorgestern (oder sprechendere Namen).
Probier es einfach mal.
setreading <device> <eigener-readingname> <Wert>
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen