Maskieren von Systemvariablen in AT bzw. Notify

Begonnen von cwagner, 30 November 2013, 11:52:16

Vorheriges Thema - Nächstes Thema

cwagner

Hallo,

vielleicht kann das einer der Profis erklären: Warum gibt es unterschiedliche Vorgehensweisen beim Behandeln von beispielsweise % in AT oder Notify Befehlen?

my $menge = sprintf("%.1f",(ReadingsVal("Wetterstation","rain",0) - ReadingsVal("RegenmengeOffset","state",0))/1.185);

funktioniert in einem AT, in einem Notify muss ich aber verdoppeln:

my $menge = sprintf("%%.1f",(ReadingsVal("Wetterstation","rain",0) - ReadingsVal("RegenmengeOffset","state",0))/1.185);

???

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

justme1968

das hat den grund das in einem at % (früher) für das auslösende event stand. inzwischen ist das auf $EVENT umgestellt aber um rückwärts kompatibel zu sein wird % immer noch durch das event ersetzt wenn im code kein $EVENT vorkommt.

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

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

cwagner

Vielen Dank für diese Antwort - daraus schließe ich hoffentlich richtig, dass ich am besten nur noch $EVENT, $DEVICE usw nehme unabhängig von eventuellen älteren Notationen in Beispielen oder auch Commandref?

Herzliche Grüße

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

justme1968

ja. in einem at solltest du $EVENT & co. verwenden.

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

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