Hallo und guten Morgen
nachdem ich hier auch am Wochenende grosse Unterstützung beim Fehlersuchen hatte, dafür möchte ich mich nocheinmal bedanken, habe ich mich all meinen Fehlern in der Log zugewand
jetzt habe ich noch 2 Fehlermeldungen - die ich nicht geregelt bekomme - vielleicht kann mir bitte jemand die Sache erklären
1.Watchdog_exec: Undefined subroutine &main::EventZeit called at ./FHEM/99_myUtils.pm line 265.
das steht in dieser Zeile
printf (WATCHDOGFILE "%d\t%d\n%s",time(),$pid,EventZeit());
.... und ich habe von Programmierung 0 Ahnung :-\
der zweite Fehler
017.04.02 12:50:31 1: devStateIcon Schalter_NAS_Dlink: Undefined subroutine &main::Schalter_NAS_Dlink_devStateIcon called at (eval 20852) line 1.
und ich habe {(Schalter_NAS_Dlink_devStateIcon($name),"toggle")}
vielen Dank im voraus
ich wünsche einen tollen Start in die neue Woche
gruss tagedieb
In beiden Fällen rufst du Unterroutinen auf, die es nicht gibt... Um das etwas mehr einzugrenzen, wäre es hilfreich etwas mehr Kontext zu bekommen, sprich, was sollen die Routinen bezwecken, vielleicht die komplette Sub, in der der Aufruf von EventZeit() steht, ...
Zitat von: tagedieb am 03 April 2017, 08:58:15.... und ich habe von Programmierung 0 Ahnung :-\
Da drängt sich natürlich die Frage auf, wie das Coding dann in die 99_myUtils.pm kommt. Dann könnte man damit die Glaskugeln zusätzlich füttern...
Gruß,
Thorsten
Hallo Thorsten
Danke für deine Hinweise
ZitatDa drängt sich natürlich die Frage auf, wie das Coding dann in die 99_myUtils.pm kommt.
das waren die Anfangszeiten als ich noch copy und paste verwendete und mich über das Ergebnis gefreut habe :-[
###################################watchdog###########################
sub Wd_exec()
{
my $filename = ">./watchdog.log";
my $pid = getpid();
if (open (WATCHDOGFILE,$filename))
{
printf (WATCHDOGFILE "%d\t%d\n%s",time(),$pid,EventZeit());
close WATCHDOGFILE;
}
return undef;
} # end sub wd_exec
das ist der ganze Eintrag in der my Utils für den watchdog aufruf
ich habe auch im Forum keine Anpassung an die neue Schreibweise gefunden :-[
und das zweite:
anbei das list
Internals:
NAME Schalter_NAS_Dlink
NR 1502
STATE off
TYPE dummy
Readings:
2016-07-26 18:40:43 state off
Helper:
Bm:
Dummy_set:
cnt 3
dmx 0
mAr
max 0
tot 0
Attributes:
devStateIcon {(Schalter_NAS_Dlink_devStateIcon($name),"toggle")}
event-on-change-reading state,transitionInProgress
fp_dachgeschoss 310,635,0
group IT
icon it_nas
room Flur_oben
webCmd on:off
auch hier habe ich mit copy /paste das sich wechselnde icon übernommen :-\
falls noch etwas die Glaskugel klären sollte, sende ich es gern ;)
Gruss Annette
Hi,
tja, als erstes würde ich da mal nachschauen, ob die beiden Routinen irgendwo waren oder vielleicht noch irgendwo sind. Hat das ganze mal funktioniert? Wenn ja, dann muss es die Routinen zumindest ja gegeben haben. Findest Du den Kram irgendwo, z.B. mit grep?
Gruß,
Thorsten
Hi
die beiden Routinen laufen bei mir im Fhem und daher auch die Fehlermeldung
das kontroll watchdog alle 10 minuten und so regelmässig kommt auch die Fehlermeldung
gefunden habe ich das hier
https://forum.fhem.de/index.php/topic,25110.msg481154.html#msg481154 (https://forum.fhem.de/index.php/topic,25110.msg481154.html#msg481154)
beim zweiten Problem - habe ich den Fehler gerade selber entdeckt - wenn toggle verlangt wird , jedoch kein toggle zu Verfügung steht, macht sich das nicht gut - das muss ich heute abend in Ruhe ändern
ich wünsche einen schönen Tag
gruss Annette
Schalter_NAS_Dlink
Attribut setExtension hinzufügen sollte reichen.
Zitat von: tagedieb am 03 April 2017, 12:25:14die beiden Routinen laufen bei mir im Fhem
Äh... Wo auch sonst?
Zitat
das kontroll watchdog alle 10 minuten und so regelmässig kommt auch die Fehlermeldung
gefunden habe ich das hier
https://forum.fhem.de/index.php/topic,25110.msg481154.html#msg481154 (https://forum.fhem.de/index.php/topic,25110.msg481154.html#msg481154)
Dort wird statt EventZeit TimeNow verwendet. Vielleicht versuchst Du das mal.
Zitat
beim zweiten Problem - habe ich den Fehler gerade selber entdeckt - wenn toggle verlangt wird , jedoch kein toggle zu Verfügung steht, macht sich das nicht gut - das muss ich heute abend in Ruhe ändern
Siehe CoolTux... Das sollte sowohl das toggle erzeugen als auch möglicherweise die fehlende Routine.
Gruß,
Thorsten
Hallo zusammen
@Thorsten
vielen Dank für deine Hilfe - mit TimeNow ist diese Fehlermeldung verschwunden
wo kann ich eigentlich so etwas nachlesen? denn mit der Eventschreibweise hat sich auch einiges gegenüber meinem FhemBeginn geändert - ich bin zwar dabei die viel zu vielen notifys in Doifs abzuändern - aber zusatzwissen hat noch niemanden geschadet :)
@CoolTux
ZitatAttribut setExtension hinzufügen sollte reichen.
diese Attribut gibt es bei mir nicht :o
ich habe zwar im Forum gefunden, das es dazu ein Modul gibt, doch wie verwendet man das?
Im Forum steht diese Frage - jedoch ohne Antwort :-[
Grüsse Annette
Zitat von: tagedieb am 03 April 2017, 16:50:45
@CoolTux
diese Attribut gibt es bei mir nicht :o
ich habe zwar im Forum gefunden, das es dazu ein Modul gibt, doch wie verwendet man das?
Im Forum steht diese Frage - jedoch ohne Antwort :-[
Grüsse Annette
Das Teil ist doch ein Dummy wenn ich mich nicht total verkuckt habe. Dann sollte es auch das Attribut geben.
Das Attribut heißt ganz genau
useSetExtension
https://fhem.de/commandref_DE.html#dummy
Danke :D
ja es ist ein dummy und es gibt auch dieses Attribut und ein dummi vor dem pc :-[
Gruss annette
Zitat von: tagedieb am 03 April 2017, 17:02:33
Danke :D
ja es ist ein dummy und es gibt auch dieses Attribut und ein dummi vor dem pc :-[
Gruss annette
Macht nix. Alles schick.
Grüße
Leon
Zitat von: tagedieb am 03 April 2017, 16:50:45vielen Dank für deine Hilfe - mit TimeNow ist diese Fehlermeldung verschwunden
wo kann ich eigentlich so etwas nachlesen?
Ich habe einfach Deinen Link angeklickt.
Zitatdenn mit der Eventschreibweise hat sich auch einiges gegenüber meinem FhemBeginn geändert - ich bin zwar dabei die viel zu vielen notifys in Doifs abzuändern
Warum das denn???
Gruß,
Thorsten
Hallo Thorsten
ich habe sehr viele notifys zum Beispiel bei Rolläden mit Fenster gekoppelt - da kann ich doch für die Griffanzeige alle drei notify in ein Doif zusammenfassen - oder sind einzelne befehle für das System günstiger?
doch im moment bekomme ich nicht einmal die Fehlermeldung von meinem Dummy Schalter_NAS_Dlink
nach CoolTux seinem Hilfepfad hin - sondern vervielfache sie ???
wenn ich das richtig interpretiert habe - muss das/der dummy setlist enthalten mit on off und in useSetExtensions muss das eingefügt werden, was on /off ausführen soll
Internals:
NAME Schalter_NAS_Dlink
NR 1502
STATE off toggle
TYPE dummy
Readings:
2017-04-03 19:22:24 state off toggle
Attributes:
devStateIcon {(Schalter_NAS_Dlink_devStateIcon($name),"toggle")}
event-on-change-reading state,transitionInProgress
fp_dachgeschoss 310,635,0
group IT
icon it_nas
room Flur_oben
setList on off
useSetExtensions toggle
webCmd on:off
Ergebnis: Fehler 4 mal im log :-[
Gruss Annette
Zitat von: tagedieb am 03 April 2017, 19:52:03ich habe sehr viele notifys zum Beispiel bei Rolläden mit Fenster gekoppelt - da kann ich doch für die Griffanzeige alle drei notify in ein Doif zusammenfassen - oder sind einzelne befehle für das System günstiger?
Ich denke nicht, dass man das so pauschal sagen kann. Ich wüsste nur nicht, warum ich mehrere notifies zu DOIFs umwandeln sollte, wenn die notifies funktionieren.
Zitat
doch im moment bekomme ich nicht einmal die Fehlermeldung von meinem Dummy Schalter_NAS_Dlink
Mir war auch nicht so ganz klar, wo plötzlich die sub Schalter_NAS_Dlink_devStateIcon herkommen soll. Vielleicht suchst Du mal per grep nach der Funktion?
Ansonsten: Was soll denn eigentlich passieren?
Gruß,
Thorsten
Hallo Thorsten
dieser Dummy schaltet zwei verschiedene Aktoren, damit der Server startet - und solange der Server an ist, soll der dummy seinen "status" zeigen
und das gleiche passiert beim runterfahren - es ist notwendig, das zum hoch- bzw runterfahren diese bestimmte Verfahrensweise eingehalten wird, denn erst nach dem der Server komplett unten ist, darf die Steckdose ausgeschalten werden. Dies startet in der Woche 3 mal zur Datensicherung
der Server ist auch noch über Presence zu sehen, doch so wollte ich verhindern, das nicht einfach die Steckdose ausgeschaltet wird, OHNE den Server vorher runter zu fahren
es sollte auch ohne dieses "Schalter_NAS_Dlink_devStateIcon" funktionieren, doch es war eben eine Herausforderung, diese Fehlermeldung zu beseitigen, welche ich nicht bestanden habe :(
Hallo
ich hätte zu dem "Schalter_NAS_Dlink_devStateIcon" noch eine Frage
wird hier der Name des Gerätes verwendet, welches diese Ereignis liefert ? bei meinem dummy zum beispiel der Name des zu schaltenden aktors?
@Thorsten
das mit dem grep hattest du weiter vorn schon einmal vorgeschlagen, - ich habe es nicht überlesen, doch auch hier muss ich im Forum ersteinmal nach Hinweisen der Anwendung suchen :-\
gruss Annette
Zitat von: tagedieb am 03 April 2017, 20:57:06es sollte auch ohne dieses "Schalter_NAS_Dlink_devStateIcon" funktionieren,
Meine Frage hat sich aber genau darauf bezogen: Was sollte denn die devStateIcon-Definition tun?
Zitat von: tagedieb am 03 April 2017, 21:20:00ich hätte zu dem "Schalter_NAS_Dlink_devStateIcon" noch eine Frage
wird hier der Name des Gerätes verwendet, welches diese Ereignis liefert ?
Tja, das ist genau der Punkt. Was soll das mit dem "Schalter_NAS_Dlink_devStateIcon"? Wer könnte das wissen, wenn nicht Du?
Zitatdas mit dem grep hattest du weiter vorn schon einmal vorgeschlagen, - ich habe es nicht überlesen, doch auch hier muss ich im Forum ersteinmal nach Hinweisen der Anwendung suchen :-\
"grep" ist ein Linux-Befehl. Damit kann man in Dateien nach bestimmten Inhalten suchen. Ich meinte damit: Schau mal, ob Du "Schalter_NAS_Dlink_devStateIcon" noch irgendwo findest.
Gruß,
Thorsten
Hallo Thorsten
Danke für deine Zeit
ich glaube ich habe mich schlecht ausgedrückt
ZitatMeine Frage hat sich aber genau darauf bezogen: Was sollte denn die devStateIcon-Definition tun?
das ist eben der copy/paste effekt, wenn man nicht weiss was man copiert, und wie es arbeitet ???
ich bin davon ausgegangen , das es mir den Dummy zustand anzeigt - nur mit meinem heutigen Wissen: brauche ich das so nicht und es geht auch anders
Zitatich hätte zu dem "Schalter_NAS_Dlink_devStateIcon" noch eine Frage
wird hier der Name des Gerätes verwendet, welches diese Ereignis liefert ?
hiermit wollte ich wissen, wenn ich hier den namen eines zu schaltenden Gerätes eintrage, ob damit der Gerätezustand übernommen wird
zum Beispiel defmode:
Dummy1 :on set schalter1 on; set schalter2 on
im Dummy unter devStateIcon: {(schalter2_devStateIcon($name),"toggle")} , damit der dummy den zustand des schalter2, als seinen Zustand anzeigt ???
gruss Annette
Zitat von: tagedieb am 04 April 2017, 13:17:25
im Dummy unter devStateIcon: {(schalter2_devStateIcon($name),"toggle")} , damit der dummy den zustand des schalter2, als seinen Zustand anzeigt ???
Ehrlich gesagt habe ich keine Ahnung, was "devStateIcon: {(schalter2_devStateIcon($name),"toggle")}" bewirken könnte oder sollte. Ich sehe nur, dass das System schalter2_devStateIcon als Perl-Routine interpretiert, die es wahrscheinlich nicht gibt.
Ich fände es auch etwas seltsam, wenn das Icon eines Dummy den Zustand eines anderen Geräts anzeigt. Wenn man so etwas will, dann sollte man per notify erst einmal das entsprechende Reading in den Dummy übernehmen und dann dort im Dummy den Zustand des Dummy entsprechend anzeigen. ...aber dann wäre es wahrscheinlich einfacher, den Zustand im ursprünglichen Device anzuzeigen.
Gruß,
Thorsten
Hallo Thorsten
danke für die hilfreiche Erklärung. - ich habe dem Dummy nun ein "einfaches" devstateIcon hinzugefügt - das funktioniert und erzeugt auch keine Fehlermeldung ;)
diese Sache, werde ich mir mal zur Seite legen und wenn ich den Kopf frei habe, mal intensiver studieren, um zu erfahren, was das überhaupt bewirkt und bezweckt
danke für deine prima Hilfe
gruss annette