FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Timo_FHEM am 12 März 2019, 14:59:01

Titel: Attribut über myUtils setzen schlägt fehl
Beitrag von: Timo_FHEM am 12 März 2019, 14:59:01
Hallo,

ich hab ein Brett vorm Kopf und brauche mal einen IT Schreiner :-)

Ich möchte über eine Routine in der 99_myUtils.pm ein Attribut bei einem Device setzen.
Das funktioniert nicht. Ich hab schon x verschiedene Schreibweisen versucht aber irgendwie klappt nix davon.
Das Attribut wird nicht verändert. Ich habe es testweise auf "a" gesetzt. Wenn die Prozedur aufgerufen wird soll es auf "1" gesetzt werden.

Hat jemand eine Idee was ich falsch mache?

Hier die Prozedur, das (test) Device und das Logfile dazu.


sub setWinZaehler($) {
   my ($dev)=@_;
   my $devZaehler=AttrVal($dev,'winZaehler',0);
   Log3(undef,1,"setWinZaehler aufgerufen : $dev - $devZaehler");

   fhem("attr '$dev', winZaehler, 1");

   $devZaehler=AttrVal($dev,'winZaehler',0);
   Log3(undef,1,"setWinZaehler nach Reset : $dev - $devZaehler");
}



Dummy Device:
defmod test dummy
attr test userattr winOpenMaxTrigger winOpenTimer winOpenTimer2 winOpenType:Fenster,Tür winOpenName winZaehler valueFn
attr test alias test
attr test comment Fensterkontakt
attr test devStateIcon open:fts_door_right_open@red closed:fts_door_right@green
attr test room 0_Test
attr test valueFn {(STATE eq "on")?"closed":"open"}
attr test webCmd open:closed
attr test winOpenMaxTrigger 2
attr test winOpenName test
attr test winOpenTimer 00:00:10
attr test winOpenTimer2 00:10:00
attr test winOpenType Tür
attr test winZaehler a

setstate test open
setstate test 2019-03-12 14:45:28 state open


Logfile:
2019.03.12 14:45:38 1: setWinZaehler aufgerufen : test - a
2019.03.12 14:45:38 1: setWinZaehler nach Reset : test - a

Danke und Gruß Timo
Titel: Antw:Attribut über myUtils setzen schlägt fehl
Beitrag von: marvin78 am 12 März 2019, 15:00:49
Denkst du denn sowas wie

attr '$dev', winZaehler, 1

würde in der Kommandozeile funktionieren?

Die Kommas und auch die Anführungszeichen haben in dem Befehl so nichts zu suchen.

Bitte die Grundlagen beherrschen, bevor man so tief einsteigt.


Titel: Antw:Attribut über myUtils setzen schlägt fehl
Beitrag von: amenomade am 12 März 2019, 17:00:09
Ausserdem benötigt man nach einer Attributenänderung nw. ein "save". Sowas wäre besser über userReading(s)
Titel: Antw:Attribut über myUtils setzen schlägt fehl
Beitrag von: Timo_FHEM am 12 März 2019, 17:55:34
Hi, danke für die Antworten.
Ich habe das jetzt so geändert :

fhem("attr $dev winZaehler 1");

Das funktioniert. Ich dachte das hätte ich vorher auch schon mal versucht, aber gut.

Mit den UserReadings schau ich mir mal an.

Danke.

Gruß Timo

Gesendet von meinem A0001 mit Tapatalk