Hallo zusammen,
habe in die 99_MyUtils.pm folgendes eingefügt:
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
##########################################################
# Untoggle
# toggle-Vorgänge in den Status on/off umsetzen
sub Untoggle($) {
my ($obj) = @_;
if (Value($obj) eq "toggle"){
if (OldValue($obj) eq "off") {
{fhem ("setstate ".$obj." on")}
}
else {
{fhem ("setstate ".$obj." off")}
}
}
else {
{fhem "setstate ".$obj." ".Value($obj)}
}
}
sub
FBWlanStat($$)
{
my ($net_device1)=@_[0];
$net_device1 = $net_device1."\n";
my $number=0;
my $status=0;
my $net_device="";
my $attendance="";
while($number <= 15){$net_device=qx(/usr/bin/ctlmgr_ctl r landevice settings/landevice$number/name);
if($net_device eq $net_device1){
$status=qx(/usr/bin/ctlmgr_ctl r landevice settings/landevice$number/active);
last;}$number++;}
if ($status == 1) {$attendance="Anwesend";}else{$attendance="Abwesend";}
if(Value("@_[1]") ne $attendance){
fhem "set @_[1] $attendance"}}
1;
und in die fhem.cfg
define MyAttendance dummy
attr MyAttendance fp_Haus 550,560,0,
attr MyAttendance icon WLAN_Status.1
attr MyAttendance room Wirtschaftsraum
attr MyAttendance setList Anwesend Abwesend
define WLAN notify WLAN {FBWlanStat("Computershop", "MyAttendance")}
define search_for_Computershop at +*00:05:00 trigger WLAN
Trotzdem bekomme ich beim STATE immer Fragezeichen und keine Netzwerkliste. Wer kann helfen?
Gruß
Lothar
Zitat von: LotharRappsilber am 23 Oktober 2014, 18:16:17
Trotzdem bekomme ich beim STATE immer Fragezeichen und keine Netzwerkliste. Wer kann helfen?
Na, in erster Linie vermutlich der Event Monitor und das FHEM Log. Wird ein entsprechendes Event erzeugt? Gibts irgendwelche Auffälligkeiten im Log?
Keine Auffälligkeiten im log.
Gruß
Lothar
na, dann füg doch mal in deinen Perl Code ein paar Log-Einträge ein, und schau, ob deine Funktion überhaupt angefahren wird bzw. welche Werte in den Variablen stehen...
Jetzt zeigt der log was an. Allerdings kann ich damit nichts anfangen.
2014.10.24 10:17:02 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_MyUtils.pm line 7.
2014.10.24 10:17:02 1: PERL WARNING: Subroutine Untoggle redefined at ./FHEM/99_MyUtils.pm line 13.
2014.10.24 10:17:02 1: PERL WARNING: Scalar value @_[0] better written as $_[0] at ./FHEM/99_MyUtils.pm line 30.
2014.10.24 10:17:02 1: PERL WARNING: Scalar value @_[1] better written as $_[1] at ./FHEM/99_MyUtils.pm line 41.
2014.10.24 10:17:02 1: PERL WARNING: Scalar value @_[1] better written as $_[1] at ./FHEM/99_MyUtils.pm line 42.
2014.10.24 10:17:02 1: PERL WARNING: Subroutine FBWlanStat redefined at ./FHEM/99_MyUtils.pm line 29.
Gruß
Lotar
zumindest sagt das Log schon mal, dass die Funktion FBWlanStat 2x existiert. Liegt da noch ne frühere Version im Verzeichnis?
nein, keine frühere Version!
2014.10.24 10:17:02 1: PERL WARNING: Scalar value @_[0] better written as $_[0] at ./FHEM/99_MyUtils.pm line 30.
2014.10.24 10:17:02 1: PERL WARNING: Scalar value @_[1] better written as $_[1] at ./FHEM/99_MyUtils.pm line 41.
2014.10.24 10:17:02 1: PERL WARNING: Scalar value @_[1] better written as $_[1] at ./FHEM/99_MyUtils.pm line 42.
das würde ich erst mal so ändern wie angegeben. also @_[1] => $_[1], usw.
if(Value("@_[1]") ne $attendance){
hier zusätzlich die anführungszeichen weg. entweder variable oder string.
I
Ich habe es gemacht. Allerdings kommt jetzt keine Liste, sondern nur "Next: 19:33:26" z. B.
Gruß
Lothar
Es kommt nur das!!!, aber keine Liste.
Gruß
Lothar
Hat denn keiner eine Idee?
Gruß
Lothar
Hallo,
Zitat von: LotharRappsilber am 03 November 2014, 10:39:20
Es kommt nur das!!!, aber keine Liste.
Gruß
Lothar
Das ist auch nur ein Screenshot deines at das wiederum das notify aufruft.
Was sollen wir damit anfangen :o
Grüße
Edith. Wobei, das sieht gut aus.
Dein notify sollte alle 5 Minuten getriggert werden.
Wenn nicht musst du mal im Logfile schauen was falsch läuft
Hallo,
vielen Dank für die schnelle Antwort, aber wie bekomm ich die Liste?
Lothar
Hmja, hier kann niemand hellsehen, was Du in der "Liste" bzw. "Netzwerkliste" genau sehen willst und es wird auch niemand deinen Code debuggen, bis er rund läuft - hier gibt's nur Hilfe zur Selbsthilfe.
Also, systematische Fehlersuche:
Step 1: kommt das Event, das den Notify antriggern soll?
Step 2: wird der Notify auch wirklich getriggert, d.h. landest Du auch in deiner Funktion FBWlanStat?
Wenn Du die beiden Fragen gesichert (!) mit ja beantworten kannst, wären wir damit wieder beim nächsten Step:
Zitat von: Doggiebert am 23 Oktober 2014, 22:44:37
na, dann füg doch mal in deinen Perl Code ein paar Log-Einträge ein, und schau, ob deine Funktion überhaupt angefahren wird bzw. welche Werte in den diversen Variablen stehen...
Dann wirst Du schon mal rausfinden in welcher Codezeile irgendwas anders läuft, als Du erwartest, und erst dann lohnt sich die Frage, wie man das behebt... ::)