[gelöst] set Devices ReadingsVal(...)

Begonnen von FHEMAN, 29 August 2016, 00:23:31

Vorheriges Thema - Nächstes Thema

FHEMAN

Ich versuche, meine Gebäudeautomatisierung so komfortabel wie möglich zu gestalten mit dem Wunsch, meinen Code leserlich zu halten und möglichst in ein paar Monaten noch auf einem Blick zu verstehen. Dazu wäre folgende Vereinfachung aus meiner Sicht sehr hilfreich:

Anstelle von

fhem("set Rollo.EG.Wohnzimmer " . ReadingsVal("Rollo.EG.Wohnzimmer", "oldValue", -1);
fhem("set Rollo.EG.Bad " . ReadingsVal("Rollo.EG.Bad", "oldValue", -1);
fhem("set Rollo.EG.Schlafzimmer " . ReadingsVal("Rollo.EG.Schlafzimmer", "oldValue", -1);
fhem("set Rollo.EG.Kueche " . ReadingsVal("Rollo.EG.Kueche", "oldValue", -1);
fhem("set Rollo.OG.Kinderzimmer.01 " . ReadingsVal("Rollo.OG.Kinderzimmer.01", "oldValue", -1);
...


einfach nur (ähnlich FILTER)

set Rollo.* Value:r:oldValue

oder ggf. auch

fhem("set Rollo.* " . ReadingsVal("$NAME", "oldValue", -1)

verwenden zu können.

Was macht das set? Es zieht sich für jedes Devices aus dem Reading (r) oldValue den dort hinterlegten Wert und führt ein set aus.

Gruß
Ronny

PS. oldValue als "Saved State" setze ich mittels userReading direkt bei jedem SET (siehe dieser Thread) und habe somit immer die Möglichkeit, zur alten, individuellen Rolladenposition zurückzukehren.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

justme1968

probier malset Rollo.* {(ReadingsVal(...))}oder sogar
set Rollo.* [$NAME:oldValue]
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

FHEMAN

Leider nein. $NAME / $name wird in beiden Fällen leider leider nicht erkannt.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

justme1968

versuch es bitte mal mit $name.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

FHEMAN

Moin Andre, $name hatte ich ebenfalls versucht. Leider vergeblich.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Puschel74

$NAME wird in meinen verwendeten notifys einwandfrei aufgelöst und funktioniert somit.

Zitat von: derron am 29 August 2016, 10:51:09
Leider vergeblich.
Ist etwas "dürftig".
Im Logfile sollte eine Meldung auftauchen und diese wäre interessant.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

FHEMAN

Zitat von: Puschel74 am 29 August 2016, 19:58:35
$NAME wird in meinen verwendeten notifys einwandfrei aufgelöst und funktioniert somit.
Notify? Um das Trigger Device im Notify geht es hier doch gar nicht.

Zitat von: Puschel74 am 29 August 2016, 19:58:35
Ist etwas "dürftig".
Im Logfile sollte eine Meldung auftauchen und diese wäre interessant.

Ausgeführt im WebCMD:
{fhem("set Rollo.* " . ReadingsVal("$NAME", "oldValue", -1)}

Global symbol "$NAME" requires explicit package name at (eval 22281) line 1.
syntax error at (eval 22281) line 1, at EOF

Ausgeführt im WebCMD:
{fhem("set Rollo.* " . ReadingsVal("$name", "oldValue", -1)}

Global symbol "$name" requires explicit package name at (eval 22246) line 1.
syntax error at (eval 22246) line 1, at EOF


Gruß
Ronny
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

justme1968

#7
hab gerade etwas im fhem code gestöbert.

aktuell geht es mit keiner der beiden vorgeschlagenen varianten.

ich habe hier: https://forum.fhem.de/index.php/topic,57210.0.html einen patch vorgeschlagen mit dem das möglich wird.

gruss
  andre

ps: die variante die du probiert hat waren nicht das was ich vorgeschlagen hatte :).
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

FHEMAN

Zitat von: justme1968 am 30 August 2016, 00:26:45
ich habe hier: https://forum.fhem.de/index.php/topic,57210.0.html einen patch vorgeschlagen mit dem das möglich wird.
Sehr cool, vielen Dank!

Zitat
ps: die variante die du probiert hat waren nicht das was ich vorgeschlagen hatte.
Wie kommst Du darauf? Habe ich etwas übersehen? Ich hatte Deine beiden Varianten inkl. [Device:Reading] getestet gehabt. Es kam nur keine Fehlermeldung, sondern funktionierte einfach nicht.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

justme1968

die [Device:Reading] variante mal aussen vor.

meine sah so aus:set Rollo.* {(ReadingsVal($NAME,"oldValue",-1))}deine so:{fhem("set Rollo.* " . ReadingsVal("$NAME", "oldValue", -1)}

ohne strings zusammen bauen und ohne explizit von fhem nach perl nach fhem zu wechseln.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

FHEMAN

Mir war gar nicht bewusst, dass hierbei "unter der Haube" ein Unterschied existiert.

Ich konnte es nicht abwarten und habe Deine Änderung (+1 Zeile) aus dem verlinkten Thread mal in die fhem.pl getan, aber es ändert sich nichts. Müsste der Aufruf denn nicht schon funktionieren? Getestet via
set Rollo.* {(ReadingsVal($NAME, "oldValue", -1))}
set Rollo.* {(ReadingsVal($name, "oldValue", -1))}


:)
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

justme1968

$DEV statt $NAME.

$NAME ist in einem notify für das auslösende device reserviert und das ganze soll ja auch funktionieren wenn das set in einem notify verwendet wird.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

FHEMAN

Auweia, noch ein neuer Platzhalter. Aber verstehe, macht ja Sinn. Danke für die Info. Jetzt funktioniert's prächtig!
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

FHEMAN

Zitat von: justme1968 am 30 August 2016, 00:26:45
ich habe hier: https://forum.fhem.de/index.php/topic,57210.0.html einen patch vorgeschlagen mit dem das möglich wird.

Hi Andre,

da ich mit einem Update gerade die Änderung in der fhem.pl rausgeschmissen habe - wie lange dauert es etwa von der Umsetzung bis ins Release?

Gruß
Ronny
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

justme1968

das ist schon längst im release
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968