Hallo,
jetzt habe ich folgendes Problem dass ich /dev/pts/<nr> in fhem.cfg definieren muss.
Da ich noch einpaar Aenderungen in Fhem machen muss benötige ich ein shutdown restart.
Leider ändert sich die nummer <nr> des pts devices jedesmal.
Ich könnte diese per system call "system cat /dev/picom2" in Erfahrung bringen.
meine Frage ist:
kann ich eine Zeile wie
define mdhg33t ECMD /dev/pts/1@9600
irgendwie auch
define mdhg33t ECMD {system(cat /dev/picom2)}@9600
schreiben?
danke und schöne Weihnachten
Andreas
Soweit ich weiß geht das nicht.
Du könntest aber nach global:INITIALIZED das Ergebnis von "system cat /dev/picom2" per defmod auf Dein Device anwenden.
Gruß
Dan
Hallo das klingt vielversprechend leider bin ich noch nicht so erfahren dass ich das in Code ausdrücken kann.
Hättest Du ein Beispiel?
Danke Andreas
Könntest Du Dir bitte einen kürzeren Nickname zulegen? Dein Mammut-Text sprengt den Bildschirm...
zu global:INITIALIZED und wie man defmod anwendet, findest Du sämtliche Antworten in commandref, wiki und hier im Forum.
Zitat von: andreas@die4krauses.net am 25 Dezember 2017, 14:44:57
Hallo das klingt vielversprechend leider bin ich noch nicht so erfahren dass ich das in Code ausdrücken kann.
Hättest Du ein Beispiel?
Danke Andreas
Etwa so, ungetestet:
define n_global_INITIALIZED notify global:INITIALIZED {my $dev=qx(cat /dev/picom2);; chomp $dev;; fhem "defmod mdhg33t ECMD $dev\@9600"}
Gruß
Dan
EDIT: Es kommt natürlich drauf an was "cat /dev/picom2" tatsächlich zurück liefert. Ist es nur die Nummer oder der ganze Pfad? Mein Beispiel geht davon aus dass der komplette Pfad geliefert wird.
Halöo vielen Dank. Ja Du hast Recht es wir der komplette Pfad geliefert.
Och werde es heute ausprobieren
Hallo habe es ausprobiert,
und es schein auch zu funktionieren :) :) :) :),
jedoch wird zum Beispiel Attr ROOM Keller nicht mehr in FHEM angezeigt bzw angelegt. :( :( :( :(
Mein derzeitiger Code:
define NGI_MSR1 notify global:INITIALIZED {my $dev2=qx(cat /dev/picom1);; chomp $dev2;; fhem "define Dev_MSR1 MSR1 $dev2\@9600"}
attr Dev_MSR1 room Keller
Das Logfile
2017.12.26 10:23:36 5: Cmd: >define NGI_MSR1 notify global:INITIALIZED {my $dev2=qx(cat /dev/picom1); chomp $dev2; fhem "define Dev_MSR1 MSR1 $dev2\@9600"}<
2017.12.26 10:23:36 5: Loading ./FHEM/91_notify.pm
2017.12.26 10:23:36 5: Cmd: >attr Dev_MSR1 room Keller<
2017.12.26 10:23:36 5: Cmd: >define FileLog_MSR1 FileLog ./log/MSR1-%Y-%m.log Dev_MSR1<
2017.12.26 10:23:36 5: Cmd: >attr FileLog_MSR1 logtype text<
2017.12.26 10:23:36 5: Cmd: >attr FileLog_MSR1 room Logs<
2017.12.26 10:23:36 1: Including ./log/fhem.save
2017.12.26 10:23:36 5: Cmd: >setstate FileLog_MSR1 active<
2017.12.26 10:23:36 5: Cmd: >setstate FileLog_MSR1 2017-12-25 23:45:29 linesInTheFile 18<
2017.12.26 10:23:36 5: Cmd: >setstate Logfile active<
2017.12.26 10:23:36 5: Cmd: >setstate NGI_MSR1 active<
2017.12.26 10:23:36 5: Cmd: >setstate NGI_MSR1 2017-12-26 10:23:25 state active<
2017.12.26 10:23:36 5: Cmd: >setstate autocreate active<
2017.12.26 10:23:36 5: Cmd: >setstate eventTypes active<
2017.12.26 10:23:36 5: Cmd: >setstate global no definition<
2017.12.26 10:23:36 5: Starting notify loop for global, 1 event(s), first is INITIALIZED
2017.12.26 10:23:36 5: createNotifyHash
2017.12.26 10:23:36 5: Triggering NGI_MSR1
2017.12.26 10:23:36 4: NGI_MSR1 exec {my $dev2=qx(cat /dev/picom1);; chomp $dev2;; fhem "define Dev_MSR1 MSR1 $dev2\@9600"}
2017.12.26 10:23:36 5: Cmd: >{my $dev2=qx(cat /dev/picom1); chomp $dev2; fhem "define Dev_MSR1 MSR1 $dev2\@9600"}<
2017.12.26 10:23:36 5: Cmd: >define Dev_MSR1 MSR1 /dev/pts/27@9600<
2017.12.26 10:23:36 5: Loading ./FHEM/00_MSR1.pm
2017.12.26 10:23:36 3: Opening Dev_MSR1 device /dev/pts/27
2017.12.26 10:23:36 3: Setting Dev_MSR1 serial parameters to 9600,8,N,1
2017.12.26 10:23:36 3: Dev_MSR1 device opened
2017.12.26 10:23:37 5: End notify loop for global
Zitat von: Hackstall am 26 Dezember 2017, 10:51:41
jedoch wird zum Beispiel Attr ROOM Keller nicht mehr in FHEM angezeigt bzw angelegt. :( :( :( :(
Das ist auch nicht nötig wenn das Device schon existiert und mit defmod verändert wird, denn dann wurde ja schon mal der Raum zugewiesen.
Gruß
Dan
Hallo vielen Dank für die Antworten. HAT GEKLAPPT.
Gruß ANdreas