Gelöst: setreading es 'fehlt' der readingname

Begonnen von thor42, 25 März 2017, 08:34:48

Vorheriges Thema - Nächstes Thema

thor42

Moin,
bei der folgenden definition:

define AZ.SteckdoseSchrankLED_notify notify AZ.SteckdoseSchrankLED { $EVENT=~s/://;;;; fhem("setreading AZ.SteckdoseSchrankLED $EVENT") ;;;; }

gibt es leider Events, denen der name fehlt. Auszug:

setreading <devspec> <reading> <value>

Im Log steht dann sowas:

setreading AZ.SteckdoseSchrankLED on : Usage: setreading <name> <reading> <value>


Lässt sich in der ~s/.. Anweisung auch die Angabe state für den fehlenden Namen bei on/off  ergänzen?

thor42

CoolTux

Vielleicht solltest Du Dir erstmal anschauen was von Deinem EVENT noch übrig bleibt. Statt fhem(" vielleicht einfach erstmal ein Log 1, "Event gleich $EVENT";
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

thor42

#2
Es kommt halt für den state lediglich ein on bzw off an, d.h. der name ist nich angegeben.
Andere Werte kommen als power 2.5 W  an und können dann einfach übernommen werden.
Ich hätte den on bzw. off dann gerne im state und würde dazu gerne einfach den Text im Falle on/off um das Wort state ergänzen.
Logauszug:

2017.03.25 10:20:23 1: Event gleich reportedState off
2017.03.25 10:20:23 1: Event gleich power 0.0 W
2017.03.25 10:23:45 1: Event gleich on
2017.03.25 10:23:45 1: Event gleich on
2017.03.25 10:23:45 1: Event gleich reportedState on
2017.03.25 10:23:46 1: Event gleich off
2017.03.25 10:23:46 1: Event gleich off
2017.03.25 10:23:46 1: Event gleich reportedState off
2017.03.25 10:24:58 1: Event gleich on
2017.03.25 10:24:58 1: Event gleich on
2017.03.25 10:24:58 1: Event gleich reportedState on
2017.03.25 10:24:59 1: Event gleich power 2.5 W
2017.03.25 10:24:59 1: Event gleich off
2017.03.25 10:24:59 1: Event gleich off
2017.03.25 10:24:59 1: Event gleich reportedState off
2017.03.25 10:25:00 1: Event gleich power 0.0 W

Bei on bzw off kommt dann folgendes im Log:

2017.03.25 10:41:11 3: setreading AZ.SteckdoseSchrankLED off : Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.

Es sollte 'state off' bzw. 'state on' werden.

CoolTux

Wenn es sich um einen Dummy handelt den du befüllen willst dann nimm set statt setreading. Ansonsten schau mal ob du nach dem setreading DEVICENAME nicht ein state hinschreiben kannst und danach erst EVENT. Bin mir aber nicht sicher ob man state mit setreading setzen kann.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

thor42

Habe den notify etwas umgeschrieben:

AZ.SteckdoseSchrankLED {
  $EVENT=~s/://;;
  my $vls=scalar(split(/\s+/, $EVENT));;
  Log 1, "Event gleich $EVENT $vls";;
  if($vls > 1) { Log 1, "AA $EVENT";; fhem("setreading AZ.SteckdoseSchrankLED $EVENT") ;; } 
}

Dann schreibt er nur die Werte, die auch den Namen haben.
und für den dummy ein stateFormat ergänzt:

attr stateFormat {sprintf("%s",ReadingsVal("AZ.SteckdoseSchrankLED","status",0))}

Damit funktioniert es wie beabsichtigt. Liesse sich evt. auch einfacher schreiben.

igami

Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

thor42

Danke igami, damit verkürzt sich das ohne Fehlermeldungen im Log auf:

attr AZ.SteckdoseSchrankLED_notify addStateEvent 1

AZ.SteckdoseSchrankLED { $EVENT=~s/://;; fhem("setreading AZ.SteckdoseSchrankLED $EVENT") ;; }


thor42