Einen schönen guten Abend zusammen.
Ich bin leider etwas am verzeifeln. Und zwar möcht eich einfach, dass das aktuelle Wetter in eine Log-Datei gespeichert wird.
Versucht habe ich nun schon verschiedene Tutorials, aber immer bleibt die Log leer. Selbst ohne irgendwelche Conditions etc. Ein Test mit einem Dummy klappte direkt.
Folgendes habe ich definiert:
define Wetter Weather 659797 3600 de
define FL_Wetter FileLog ./log/wetter-%Y-%m.log Wetter
attr FL_Wetter logtype text
attr FL_Wetter room Logs
Er hat sogar die Log-Datei erstellt und und z.B. Probably associated with FL_Wetter gesetzt.
Sieht für mich alles gut aus. Aber seit Stunden ist die Datei einfach leer.
Was mache ich denn falsch?
Hallo Aerics
Schreib mal in deinem Log Wetter groß
Gruß Axel
Dies macht leider keinen Unterschied.
Kommen denn neue Daten im Weather Device an?
Ja, ich sehe alle Wetterdaten. Auch mit Bildchen :)
Ich habe nun erneut ca. 3 mal hier ausm Forum verschiedene defines kopiert.
Das einzige was ich hinbekommen habe ist, dass wenn ./log/Wetter-%m_%y.log MeinWetter.* definiert ist, immerhin immer in der Log 2015-11-03_08:27:26 MeinWetter update steht. Aber das wars, kein Eintrag von Temperatur oder sonstwas.
Wieso heißt es plötzlich "MeinWetter"? Ich kann nur raten: Erzeugen die Readings events? Poste doch mal ein list von deinem Weather Device.
Das liegt daran, dass ich wie gesagt von verschiedenen Tutorials versuche es zum Laufen zu bekommen. Aber unterm Strich sind alle identisch.
Hier mal ein Screenshot aller Settings:
http://imgur.com/NBBhKwF (http://imgur.com/NBBhKwF)
Ich hatte nach einem List gefragt, nicht nach screenshots.
Ich habe das gerade bei mir nachgestellt und ein Wetter- und ein entsprechendes File-Log Device erstellt. Folgende Definitionen habe ich verwendet:
define yWetter Weather XXXXXX 6200 de
define WetterLog FileLog ./log/Wetter_Test-%Y-%m.log yWetter
Und siehe da, es wird bei jedem update alles brav ins Log geschrieben.
Ich habe nun deine beiden Befehle ausgeführt.
Weather wurde direkt erstellt und mit Daten ausgegeben.
Nachdem ich mal set update gemacht habe steht wieder nur:
2015-11-03_09:38:52 yWetter update
in der Log.
Wie aktuell ist denn deine Version? Mach mal ein version und poste es, falls du unsicher bist.
Da fällt mir ein: Wenn du dein Log-File betrachtest, aktualisiere mal die Seite (F5). Nicht dass dein Browser-Cache "schuld" ist ;)
version gibt aus:
File Rev Last Change
fhem.pl 9755 2015-11-02 19:34:14Z rudolfkoenig
90_at.pm 9660 2015-10-25 11:58:17Z rudolfkoenig
98_autocreate.pm 9415 2015-10-09 17:22:35Z rudolfkoenig
98_dummy.pm 8809 2015-06-23 18:02:33Z rudolfkoenig
91_eventTypes.pm 8725 2015-06-10 09:50:06Z rudolfkoenig
01_FHEMWEB.pm 9707 2015-10-28 12:49:42Z rudolfkoenig
92_FileLog.pm 9704 2015-10-28 08:45:15Z rudolfkoenig
91_notify.pm 8953 2015-07-13 15:13:06Z rudolfkoenig
99_SUNRISE_EL.pm 6765 2014-10-14 18:24:29Z rudolfkoenig
98_SVG.pm 9577 2015-10-21 17:45:02Z rudolfkoenig
98_telnet.pm 9511 2015-10-18 10:13:01Z rudolfkoenig
59_Twilight.pm 8743 2015-06-14 12:14:57Z dietmar63
99_Utils.pm 7914 2015-02-08 11:14:10Z rudolfkoenig
59_Weather.pm 8937 2015-07-11 12:56:21Z borisneubert
98_weblink.pm 9665 2015-10-25 15:07:35Z rudolfkoenig
Ich öffne die Log-Datei einmal über den Webbrowser, sowie direkt ausm Log-Verzeichnis.
Da steht sonst nix drin außer dieser eine Eintrag. Ist auch nur 1Kb groß.
Das ist aktuell.
Also weiter: Werden denn deine readings im yWetter Modul auch wirklich aktualisiert (erhalten sie eine neue Zeit), wenn du
set yWetter update
machst?
Nochmal: Poste mal ein list von deinem Log-Device.
Ein set yWetter update bringt nur einen neuen Eintrag in der Log
2015-11-03_09:38:52 yWetter update
2015-11-03_10:05:54 yWetter update
Alle Timestamps bei den Readings steht weiterhin auf 2015-11-03 09:38:28.
Ein list WetterLog gibt aus:
Internals:
CFGFN
DEF ./log/Wetter_Test-%Y-%m.log yWetter
NAME WetterLog
NOTIFYDEV yWetter
NR 106
NTFY_ORDER 50-WetterLog
REGEXP yWetter
STATE active
TYPE FileLog
currentlogfile ./log/Wetter_Test-2015-11.log
logfile ./log/Wetter_Test-%Y-%m.log
Attributes:
Bei Lust kann man auch gerne mal per Teamviewer dazu kommen :)
Also dein FileLog ist schon korrekt. Es stellt sich die Frage, warum die readings in deinem Weather-Device nicht aktualisiert werden. Wenn sie nicht aktualisiert werden, dann wird natürlich auch nichts geloggt. Es gibt ja kein Event.
Hast du vielleicht das Attribut event-on-change-reading im Weather Device gesetzt?
Nein, ich habe wie gesagt nur die beiden von dir genannten Befehle zur Erzeugung ausgeführt.
Internals:
CFGFN
DEF 654200 6200 de
INTERVAL 6200
LANG de
LOCATION 654200
NAME yWetter
NR 104
STATE T: 3 H: 100 W: 10 P: 1016
TYPE Weather
UNITS c
Readings:
2015-11-03 09:38:28 city Griesheim, Germany
2015-11-03 09:38:28 code 20
2015-11-03 09:38:28 condition Nebel
2015-11-03 09:38:28 current_date_time 03 Nov 2015 8:49 am CET
2015-11-03 09:38:28 day_of_week Di
2015-11-03 09:38:28 fc1_code 30
2015-11-03 09:38:28 fc1_condition teilweise wolkig
2015-11-03 09:38:28 fc1_day_of_week Di
2015-11-03 09:38:28 fc1_high_c 9
2015-11-03 09:38:28 fc1_icon partly_cloudy
2015-11-03 09:38:28 fc1_low_c 4
2015-11-03 09:38:28 fc2_code 34
2015-11-03 09:38:28 fc2_condition heiter
2015-11-03 09:38:28 fc2_day_of_week Mi
2015-11-03 09:38:28 fc2_high_c 16
2015-11-03 09:38:28 fc2_icon mostly_sunny
2015-11-03 09:38:28 fc2_low_c 8
2015-11-03 09:38:28 fc3_code 30
2015-11-03 09:38:28 fc3_condition teilweise wolkig
2015-11-03 09:38:28 fc3_day_of_week Do
2015-11-03 09:38:28 fc3_high_c 15
2015-11-03 09:38:28 fc3_icon partly_cloudy
2015-11-03 09:38:28 fc3_low_c 8
2015-11-03 09:38:28 fc4_code 30
2015-11-03 09:38:28 fc4_condition teilweise wolkig
2015-11-03 09:38:28 fc4_day_of_week Fr
2015-11-03 09:38:28 fc4_high_c 16
2015-11-03 09:38:28 fc4_icon partly_cloudy
2015-11-03 09:38:28 fc4_low_c 10
2015-11-03 09:38:28 fc5_code 39
2015-11-03 09:38:28 fc5_condition vereinzelt Gewitter
2015-11-03 09:38:28 fc5_day_of_week Sa
2015-11-03 09:38:28 fc5_high_c 14
2015-11-03 09:38:28 fc5_icon scatteredthunderstorms
2015-11-03 09:38:28 fc5_low_c 11
2015-11-03 09:38:28 humidity 100
2015-11-03 09:38:28 icon fog
2015-11-03 09:38:28 pressure 1016
2015-11-03 09:38:28 state T: 3 H: 100 W: 10 P: 1016
2015-11-03 09:38:28 temp_c 3
2015-11-03 09:38:28 temp_f 37
2015-11-03 09:38:28 temperature 3
2015-11-03 09:38:28 visibility 2
2015-11-03 09:38:28 wind 10
2015-11-03 09:38:28 wind_chill 1
2015-11-03 09:38:28 wind_condition Wind: O 10 km/h
2015-11-03 09:38:28 wind_direction 90
2015-11-03 09:38:28 wind_speed 10
Fhem:
interfaces temperature;humidity;wind
Attributes:
Stellt dein Weather device mal auf verbose 5, mache ein update und schaue ins allgemeine Log. Das Update funktioniert offenbar nicht oder du machst es nicht korrekt ;)
Kommt kein Eintrag in der normalen Log hinzu.
Sehe nur nach einem Serverneustart allgemeine Einträge.
Nicht das am Ende unter Windows Fhem ein Problem hat...
Hast du denn
attr yWetter verbose 5
in die Kommandozeile eingegeben oder das Attribut in der Detailansicht hinzugefügt, bevor du ein update gemacht hast?
Wie machst du das update des Weather-Devices?
Zu Windows und FHEM kann ich nichts sagen. Ich finde es nicht optimal, es auf Windows laufen zu lassen. Möglich wäre, dass das ein Problem ist. Ich würde aber davon ausgehen, dass bei verbose 5 Fehler im Log auftauchen würden.
Über die Kommandozeile habe ich verbos hinzugefügt und kontrolliert, dass das atr gesetzt war.
Ein Update mache ich immer über set yWetter update. Interessant ist, dass bei einem restart des Servers die reading Timestamps geändert werden.
Zitat von: marvin78 am 03 November 2015, 10:17:25
Es stellt sich die Frage, warum die readings in deinem Weather-Device nicht aktualisiert werden.
Da schafft ein Blick ins Modul schnell Klarheit : Bei manuellem Update via Set wird BlockingGet aufgerufen ohne Events auszulösen und bei Update durch abgelaufenes Intervall NonBlockingGet mit Events :)
Hm. Nein. Ich habe gerade rein geschaut. Auch bei set Update wird NonBlockingGet verwendet. Nur bei define/modify wird die Blocking Variante ohne Trigger verwendet.
@Aerics: Mach mal ein modify des Devices und/oder stelle testweise das Intervall kleiner und schaue, ob dann Events kommen.
Es ist durchaus möglich, dass non-Blocking bei Windows Installationen gar nicht funktioniert (da gibt es aber eventuell bessere Ansprechpartner). Oder hast du eventuell kein Telnet Device?
Schon komisch das Ganze.
Selbst bei einem Intervall 60 passiert nix. Ich habe aber z.B. ein Dummy mit at +*00:01 was ständig ausgeführt wird.
Habe ja das Problem hier in der Firma bei einer Testinstallation, wie auch zu Hause.
Irgendwas funzt da nicht richtig^^
Beides Windows?
Hast du ein telnet Device in deiner Installation?
list TYPE=telnet
Ich kenne mich mit FHEM auf Windows nicht aus. Da muss dann ein anderer ran.
Ja, beides Windows.
Internals:
DEF 7072 global
FD 5
NAME telnetPort
NR 3
NTFY_ORDER 50-telnetPort
PORT 7072
STATE Initialized
TYPE telnet
Attributes:
Tut mir leid, aber ich bin dann raus (weil fast ohne weitere Idee). Die einzige Idee, die ich noch hätte, wäre mal global verbose 5 zu setzen und dann nach Fehlern im Hauptlog zu schauen, wenn ein update gemacht wurde (ein wenig warten, denn Non-blocking wird verzögert ausgeführt, wenn es denn unter Windows gemacht wird). Eventuell fehlen auch Perl Module. Wie gesagt, ich habe keine Ahnung, von FHEM unter Windows. Ich weiß nur, dass es ein paar Einschränkungen geben muss.
Habe mal global auf 5 gesetzt.
Interessant finde ich, dass mein at alle Minute einen Eintrag erzeugt, Wetter jedoch nie.
Wenn ich manuell anstoße kommt nur folgendes:
2015.11.03 11:54:15 5: Cmd: >set yWetter update<
2015.11.03 11:54:15 4: HttpUtils url=http://weather.yahooapis.com/forecastrss?w=654200&u=c
2015.11.03 11:54:15 5: Triggering yWetter (1 changes)
2015.11.03 11:54:15 5: Notify loop for yWetter update
2015.11.03 11:54:15 4: FHEMWEB:127.0.0.1:61101 GET /fhem?detail=yWetter; BUFLEN:0
2015.11.03 11:54:15 4: name: /fhem?detail=yWetter / RL:3662 / text/html; charset=UTF-8 / Content-Encoding: gzip
So, ich habe hatte den ganzen Tag meinen kleinen Rechner zu Hause laufen lassen um zu schauen, ob die Log vom Wetter geschrieben wird.
Hier das Gleiche wie in der Firma, Log weiterhin leer und bei den readings letzter Timestamp von gestern Abend.
Mache ich ein manuelles update, so kommt in der Log wieder nur der Eintrag bezüglich Update, aber sonst nix.
2015.11.03 21:13:12 5: Cmd: >set Wetter update<
2015.11.03 21:13:12 4: HttpUtils url=http://weather.yahooapis.com/forecastrss?w=659797&u=c
2015.11.03 21:13:12 5: Triggering Wetter (1 changes)
2015.11.03 21:13:12 5: Notify loop for Wetter update
2015.11.03 21:13:12 4: FHEMWEB:192.168.1.2:49868 GET /fhem?detail=Wetter; BUFLEN:0
2015.11.03 21:13:12 4: name: /fhem?detail=Wetter / RL:3706 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2015.11.03 21:13:12 4: Connection closed for FHEMWEB:192.168.1.2:49851: EOF
2015.11.03 21:13:12 4: FHEMWEB:192.168.1.2:49868 GET /fhem?cmd={ReadingsVal(%22Wetter%22,%22update%22,%22%22)}&XHR=1; BUFLEN:0
2015.11.03 21:13:12 5: Cmd: >{ReadingsVal("Wetter","update","")}<
2015.11.03 21:13:12 4: name: /fhem?cmd={ReadingsVal(%22Wetter%22,%22update%22,%22%22)}&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2015.11.03 21:13:12 4: FHEMWEB:192.168.1.2:49867 GET /fhem?cmd={AttrVal(%22Wetter%22,%22room%22,%22%22)}&XHR=1; BUFLEN:0
2015.11.03 21:13:12 5: Cmd: >{AttrVal("Wetter","room","")}<
2015.11.03 21:13:12 4: name: /fhem?cmd={AttrVal(%22Wetter%22,%22room%22,%22%22)}&XHR=1 / RL:27 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2015.11.03 21:13:12 4: FHEMWEB:192.168.1.2:49867 GET /fhem?XHR=1&inform=type=status;filter=Wetter;since=1446581591;fmt=JSON×tamp=1446581586525; BUFLEN:0
2015.11.03 21:13:14 4: FHEMWEB:192.168.1.2:49868 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2015-11.log; BUFLEN:0
Bezüglich Installation unter Windows und dessen Perl-Module, so habe ich mich hier dran gehalten: http://fhem.de/HOWTO_Windows.html
So, ich habe nochmal 1:1 FHEM so wie in der Anleitung in einer VMWare unter Windows 7 installiert. Ich dachte, dass es vielleicht an Windows 10 liegt, welches auf beiden anderen Systemen installiert ist.
Aber auch hier genau das gleiche. Nach einem update von Weather wird kein Timestamp/Wert angepasst.
Hier gibt es wohl ein ernstes Problem unter Windows.
Gibt es denn eine Anlaufstelle für solche Bugs?
Ich möchte nur zum Testen keine weitere Anschaffung tätigen, so dass das System zu Beginn unter Windows laufen muss.
So, da bin ich mal wieder 8)
Ich habe mir nun mal die Arbeit gemacht und ein Debian unter VMWare hochgezogen.
Wieder wie auf der 1. Seite yWetter definiert und sofort wurden alle Einträge in die Log geschrieben.
Also ist das echt ein Problem unter Windows :(
Such doch mal nach Hinweisen hier im Forum, ob die Httputils eventuell generell nicht unter Windows funktionieren.
Aber ganz ehrlich? Ein Raspi ist billig und auf Dauer ist Windows ohnehin nicht zu empfehlen ;)
Zitat von: marvin78 am 05 November 2015, 08:58:41
Such doch mal nach Hinweisen hier im Forum, ob die Httputils eventuell generell nicht unter Windows funktionieren.
Wenn ich hier im Forum einfach nur nach Windows suche gibt es nur 30 Ergebnisse. Und dazu finde ich nix, oder zu anderen Problemen.
Zitat von: marvin78 am 05 November 2015, 08:58:41
Aber ganz ehrlich? Ein Raspi ist billig und auf Dauer ist Windows ohnehin nicht zu empfehlen ;)
Das ist so richtig. Aber jetzt mal zum 30 Tage testen um ich langfristig FHEM nutzen möchte ist jede zusätzliche Hardware Zeit und auch z.B. beim Zurückschicken Aufwand. Langfristig mal son Raspi hinzustellen ist sicherlich ein guter Ansatz.