55_GDS.pm - es muss nicht immer Yahoo, openweathermap usw. sein

Begonnen von betateilchen, 03 August 2013, 17:34:17

Vorheriges Thema - Nächstes Thema

betateilchen

Zitat von: justme1968 schrieb am Di, 06 August 2013 23:53es gibt im prinzip zwei möglichkeiten für die icons:
[...]
zu summaryFn/detailFn findest du mehr im wiki und im remote modul.

Hallo Andre,

ich muss erstmal versuchen zu verstehen, wie das Frontend eigentlich "funktioniert". Dann weiß ich auch, was ich im return() meiner Funktion liefern muss, damit das Ergebnis so aussieht, wie ich mir das vorstelle.

Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: Markus Bloch schrieb am So, 04 August 2013 19:23Gerade solche Wetterwarnungen wie Sturm/Hagel könnte man damit super alarmieren und eventuelle Vorkehrungen treffen
[...]
Markus

Hallo Markus,

das kannst Du mit der aktuellen Version nun schon machen :) So kompliziert wie zuerst befürchtet, war es dann doch gar nicht.

Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Steffen

Zitat von: betateilchen schrieb am Mi, 07 August 2013 08:58
Zitat von: Steffen schrieb am Mi, 07 August 2013 06:32Fhem up-to-date

Mfg Steffen


Nein, Dein fhem ist NICHT up to date. Ich hatte oben nämlich extra dazugeschrieben:

ZitatWICHTIG:
1. Das Modul verwendet die aktuelle fhem.pl die Rudi heute eingecheckt hat!

Diese Datei musst Du also entweder aus SVN ausgecheckt haben oder Du musst das HEUTIGE Update in fhem durchführen. Die Update-Dateien werden m.W. morgens um 07:45 Uhr generiert. Also heute morgen um 06:32 als Du hier gepostet hast, kannst Du diese Datei per Update noch nicht erhalten haben ;)


Oh je entschuldige, da waren meine Finger auf der Tastatur wieder schneller als mein Gehirn;-),

habe aber trotzdem leider mit der neuen Version ein Problem, wenn ich "set GDSRagow update" eingebe stürzt mein Fhem komplett ab.

set GDSRagow alerts...usw. klappt aber nur bei "Update".

Hier mal verbose 5 log:
2013.08.07 19:58:08 4: Connection accepted from FHEMWEB:24.134.76.21:52007
2013.08.07 19:58:08 4: HTTP FHEMWEB:24.134.76.21:52007 GET /fhem?XHR=1&cmd=xmllist
2013.08.07 19:58:08 5: Cmd: >xmllist<
2013.08.07 19:58:08 5: Loading /opt/fhem/FHEM/98_XmlList.pm
2013.08.07 19:58:09 5: SET: Unknown argument ?, choose one of clear getConfig getRegRaw inhibit off on on-for-timer on-till peerBulk press regBulk regSet sign statusRequest toggle
Unknown argument ?, choose one of clear getConfig getRegRaw inhibit off on on-for-timer on-till peerBulk press regBulk regSet sign statusRequest toggle
Unknown argument ?, choose one of clear getConfig getRegRaw inhibit off on on-for-timer on-till peerBulk press regBulk regSet sign statusRequest toggle
Unknown argument ?, choose one of clear down getConfig getRegRaw getSerial inhibit off on on-for-timer on-till pair pct:slider,0,1,100 peerBulk press raw regBulk regSet reset sign statusRequest stop toggle unpair up
Unknown argument ?, choose one of clear getConfig getRegRaw getSerial inhibit off on on-for-timer on-till pair peerBulk press raw regBulk regSet reset sign statusRequest toggle unpair
2013.08.07 19:58:09 4: /fhem?XHR=1&cmd=xmllist / RL: 278297 / text/plain; charset=UTF-8 /  /
2013.08.07 19:58:10 4: HTTP FHEMWEB:192.168.178.78:40612 GET /fhem?cmd=jsonlist+KinderZimmer&XHR=1
2013.08.07 19:58:10 5: Cmd: >jsonlist KinderZimmer<
2013.08.07 19:58:10 4: /fhem?cmd=jsonlist+KinderZimmer&XHR=1 / RL: 824 / text/plain; charset=UTF-8 / Content-Encoding: gzip
 /
2013.08.07 19:58:10 4: HTTP FHEMWEB:192.168.178.78:40615 GET /fhem?cmd=jsonlist+meinPopupDevice&XHR=1
2013.08.07 19:58:10 5: Cmd: >jsonlist meinPopupDevice<
2013.08.07 19:58:10 4: /fhem?cmd=jsonlist+meinPopupDevice&XHR=1 / RL: 195 / text/plain; charset=UTF-8 / Content-Encoding: gzip
 /
2013.08.07 19:58:10 4: Connection accepted from FHEMWEB:24.134.76.21:56116
2013.08.07 19:58:10 4: HTTP FHEMWEB:192.168.178.78:40619 GET /fhem?cmd=jsonlist+Terrassen_Eingang&XHR=1
2013.08.07 19:58:10 5: Cmd: >jsonlist Terrassen_Eingang<
2013.08.07 19:58:10 4: /fhem?cmd=jsonlist+Terrassen_Eingang&XHR=1 / RL: 502 / text/plain; charset=UTF-8 / Content-Encoding: gzip
 /
2013.08.07 19:58:10 4: HTTP FHEMWEB:24.134.76.21:56116 GET /fhem&detail=GDSRagow&detail=GDSRagow&dev.setGDSRagow=GDSRagow&cmd.setGDSRagow=set&arg.setGDSRagow=update&val.setGDSRagow=
2013.08.07 19:58:10 5: Cmd: >set GDSRagow update<
2013.08.07 19:59:28 1: Including fhem.cfg
2013.08.07 19:59:28 5: Cmd: >attr global autoload_undefined_devices 1<
2013.08.07 19:59:28 5: Cmd: >attr global backup_before_update 0<
2013.08.07 19:59:28 5: Cmd: >attr global holiday2we Lindenhof<
2013.08.07 19:59:28 5: Cmd: >attr global logfile ./log/fhem-%Y-%m.log<
2013.08.07 19:59:28 5: Cmd: >attr global modpath /opt/fhem<
2013.08.07 19:59:28 5: Loading /opt/fhem/FHEM/99_SUNRISE_EL.pm
2013.08.07 19:59:29 5: Loading /opt/fhem/FHEM/99_Utils.pm
2013.08.07 19:59:29 5: Loading /opt/fhem/FHEM/99_andnotify.pm
2013.08.07 19:59:31 5: Loading /opt/fhem/FHEM/99_email.pm


Hoffe kannst da was erkennen und mir bitte Helfen?

Mfg Steffen

betateilchen

Zitat von: Steffen schrieb am Mi, 07 August 2013 20:23[code]
2013.08.07 19:58:10 5: Cmd: >set GDSRagow update<
2013.08.07 19:59:28 1: Including fhem.cfg
/code]

Hoffe kannst da was erkennen und mir bitte Helfen?

Hallo Steffen,

ich erkenne, dass Du irgendwann zwischen 19:58:10 und 19:59:28 Dein fhem neu gestartet hast, mehr nicht.
Logging ist in meinem Modul noch nicht eingebaut. Für mich reichen die auftretenden Fehlermeldungen, die ich auf der Systemconsole sehe, in der ich fhem starte.

Ich weiß auch nicht, was Du mit dem update Befehl bewirken wolltest? Ich kann mich nicht daran erinnern, diesen Befehl hier im Thread schon beschrieben zu haben.

Nichtsdestotrotz funktioniert der Befehl bei mir problemlos:

(http://up.picr.de/15429197je.png)

Die beiden readings mit c_ am Anfang sind das Ergebnis des Updatebefehls.


Die Fehlerursache für Deinen Absturz vermute ich eher in Deiner Systemumgebung oder in Deiner Handhabung des Moduls.

Mach doch mal bitte ein "list GDSRagow" und poste die Ausgabe hier. Den Username und das Passwort kannst Du weglassen.

Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Hier kommt das tägliche Update :o)

Da FHEMWEB jetzt (reguläres Update kommt morgen früh!) auch GET grafisch unterstützt,

(http://up.picr.de/15427052lr.png)

sind einige Befehle aus "set" zum sehr viel logischeren "get" umgezogen.

SET Befehle:


"set <name> clear"
"set <name> help"
"set <name> conditions <stationName>"
"set <name> rereadcfg"
"set <name> update"


clear: löscht alle a_ c_ und g_ Readings
conditions <stationName>: definiert eine Station, deren Wetterdaten regelmäßig (alle 60 Minuten) aktualisiert werden
rereadcfg: liest alle benötigten Wetterdaten neu vom DWD Server
update: aktualisiert die Wetterdaten der mit "conditions <stationName>" festgelegten Wetterstation und startet den Aktualisierungtimer neu
help: gibt eine Hilfeliste aus

GET Befehle:


"get <name> alerts <region>".
"get <name> conditions <stationName>".
"get <name> help".
"get <name> list stations|data".
"get <name> rereadcfg".
"get <name> warnings <region>


alerts: liefert aktuelle Wetterwarnung für die aus der Dropdownliste angegebene Region
conditions <stationName>: definiert eine Station, deren Wetterdaten NICHT automatisch aktualisiert werden
help: gibt eine Hilfeliste aus
list stations: listet alle verfügbaren Wetterstationen mit aktuellen conditions auf
list data: listet alle Wetterdaten aller verfügbaren Wetterstationen in einer Tabelle auf
rereadcfg: liest alle benötigten Wetterdaten neu vom DWD Server
warnings <region>: liefert die aktuelle Warnlage für das gewählte Bundesland


Die Regionsangabe bei "alerts <region>" kann sowohl über den Region-Namen wie in der Dropdownliste angezeigt (!) oder über die WARNCELLID der Region angegeben werden.

get gds alerts Insel_Helgoland

und

get gds alerts 901056002

liefert also die gleichen Daten. Wichtig: Man beachte den Unterstrich in der Stationsangabe zwischen "Insel" und "Helgoland" - der ist wichtig und muss bei allen Regionsangaben mit Leerzeichen verwendet werden.

Wenn man eine WARNCELLID einmal kennt, kann man diese immer wieder für die Abfrage verwenden, diese IDs sind eindeutig und fest einer bestimmten Region zugeordnet. Das macht die Abfrage übersichtlicher, wenn man in notify oder at arbeitet.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Das Modul wird seit heute nur noch auf dem regulären Update-Weg von fhem ausgeliefert. Die heutige update-Version entspricht der gestern hier im Thread angehängten Version.

Bitte die (auch in commandref) dokumentierten Voraussetzungen für eine erfolgreiche Inbetriebnahme beachten, das Modul braucht die Perl-Module Net::FTP, List::MoreUtils, XML::Simple die ggf. nachinstalliert werden müssen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

ich bekomme mit der aktuellen version den fehler No value specified for 'KeyAttr' option in call to XMLin() at ./FHEM/55_GDS.pm line 456 und die alerts gehen nicht.

wenn man beim XMLin noch ein KeyAttr => {} mit übergibt geht alles.

das mit der aktuellen XML::Simple version 2.20. die gleiche verwende ich auch für die hue module. da ist das gleiche nötig.

gruss
  andre

ps: die encoding geschichte sollte jetzt gelöst sein. rudi hat vorhin die ausgabe als ersten teil eingecheckt und ich hab dann noch die eingabe gepostet.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Zitat von: justme1968 schrieb am Do, 08 August 2013 16:34das mit der aktuellen XML::Simple version 2.20. die gleiche verwende ich auch für die hue module. da ist das gleiche nötig.

Hallo Andre,

danke für den Hinweis, ich habe die vorgeschlagene Änderung gerade eingecheckt.
Kannst Du bitte  nochmal testen? Bei mir tritt die Fehlermeldung nicht auf.

Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

TeeVau

Hallo,

wollte es gerade auch testen, leider schaffe ich es aber nicht das ganze in Funktion zu bringen.
Mir ist aufgefallen, dass zumindest bei Installationen auf der FBF, fhem.pl bei einem define abstürzt, wenn das Verzeichnis /tmp/conditions nicht vorhanden ist.
/tmp/conditions, /tmp/alerts und /tmp/warnings habe ich manuell angelegt und die Rechte erst einmal zum testen auf 777 gesetzt. Jetzt stürzt fhem bei einem define nicht mehr ab, das Modul wird aber nicht geladen, Verbose 5:

2013.08.09 11:25:20 0: Modification of non-creatable array value attempted, subscript -1 at ./FHEM/55_GDS.pm line 796.
 Modification of non-creatable array value attempted, subscript -1 at ./FHEM/55_GDS.pm line 796.
2013.08.09 11:25:20 1: reload: Error:Modul 55_GDS deactivated:
2013.08.09 11:25:19 5: Loading ./FHEM/55_GDS.pm
2013.08.09 11:25:19 5: Cmd: >define myGds gds <user> <passwd><


Habe mal /tmp/conditions/Höhe angelegt, aber auch ohne Erfolg. Jemand eine Idee? Ich weis nicht mehr weiter

Grüße, Tobias
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

betateilchen

1. /tmp/conditions ist kein Verzeichnis, sondern eine Datei

2. /tmp/conditions wird vom Modul automatisch angelegt.

Voraussetzung: Es müssen die in der commandref beschriebenen zusätzlichen perl-Module vorhanden sein!

Zitat/tmp/conditions/Höhe

was soll das sein?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TeeVau

Die Module sollten installiert sein. Gibt es einen Weg um das noch einmal zu prüfen?
Habe u.a. folgende Module auf der FBF und gehe davon aus, dass diese damit auch installiert sind:
\\192.168.178.1\fritz.nas\fhem\lib\perl5\site_perl\5.12.2\mips-linux\Net\FTP.pm
\\192.168.178.1\fritz.nas\fhem\lib\perl5\site_perl\5.12.2\mips-linux\List\MoreUtils.pm
\\192.168.178.1\fritz.nas\fhem\lib\perl5\site_perl\5.12.2\mips-linux\XML\Simple.pm

Ich dachte, dass ggf. irgendwelche Verzeichnisse oder Dateien nicht angelegt werden können und habe diese deshalb per Hand erstellt. Da habe ich dann Verzeichnis und Datei verwechselt. Ist aber alles wieder rückgänmgig gemacht. Lege ich die datei /tmp/conditions nicht per Hand an, bekomme ich eine andere Fehlermeldung:

2013.08.09 12:46:18 0: Document requires an element [Ln: 1, Col: 0]

 Document requires an element [Ln: 1, Col: 0]
2013.08.09 12:46:18 1: reload: Error:Modul 55_GDS deactivated:

Die Datei /tmp/conditions wird dabei auch nicht angelegt. Vielleicht liegt das Problem am FTP Modul? Der FTP Zugang selber funktioniert, mit dem total commander komme ich drauf.
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

betateilchen

Zitat von: TeeVau schrieb am Fr, 09 August 2013 12:47Gibt es einen Weg um das noch einmal zu prüfen?

Aus dem fhem Frontend ein "reload 55_GDS" machen - sollten dann irgendwelche Module fehlen, gibt es eine entsprechende Fehlermeldung. Welche Version von 55_GDS hast Du installiert?

aktuell ist: # $Id: 55_GDS.pm 3634 2013-08-08 21:52:21Z betateilchen $

Hast Du mal in das fhem-Logfile geschaut, ob da irgendwelche Meldungen auftauchen?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TeeVau

Zitat von: betateilchen schriebAus dem fhem Frontend ein "reload 55_GDS" machen
2013.08.09 13:14:19 4: HTTP FHEMWEB:192.168.178.22:2608 GET /fhem?room=hidden
2013.08.09 13:14:18 5: Loading ./FHEM/55_GDS.pm
2013.08.09 13:14:18 5: Cmd: >reload 55_GDS<

Zitat von: betateilchen schriebWelche Version von 55_GDS hast Du installiert?
Direkt aus dem fhem update, keine Version aus dem Forum hier.

Zitat von: betateilchen schriebaktuell ist: # $Id: 55_GDS.pm 3634 2013-08-08 21:52:21Z betateilchen $
Genau die habe ich auch.

Zitat von: betateilchen schriebHast Du mal in das fhem-Logfile geschaut, ob da irgendwelche Meldungen auftauchen?
Habe gerade noch mal getestet:
Nach diesem define ist fhem abgestürzt, obwohl keine Fehlermeldung zu sehen ist im fhem log:

2013.08.09 13:17:24 4: et: GDS myGds _copyright: Quelle: Deutscher Wetterdienst -> _copyright: Quelle: Deutscher Wetterdienst
2013.08.09 13:17:24 5: Notify loop for myGds _copyright: Quelle: Deutscher Wetterdienst
2013.08.09 13:17:24 5: Triggering myGds (1 changes)
2013.08.09 13:17:23 3: GDS myGds: retrieving gds/specials/warnings/xml/PVW/Z_CAP* from DWD server
2013.08.09 13:17:23 4: et: GDS myGds _copyright: Quelle: Deutscher Wetterdienst -> _copyright: Quelle: Deutscher Wetterdienst
2013.08.09 13:17:23 5: Notify loop for myGds _copyright: Quelle: Deutscher Wetterdienst
2013.08.09 13:17:23 5: Triggering myGds (1 changes)
2013.08.09 13:17:22 3: GDS myGds: retrieving gds/specials/observations/tables/germany/* from DWD server
2013.08.09 13:17:22 5: Cmd: >define myGds gds user passw<


auf der linux console gab es zu dem diesen Fehler (da werde ich erst mal weiter ansetzen)

could not find ParserDetails.ini in /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/XML/SAX
Can't locate unicore/Heavy.pl in @INC (@INC contains: /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2 /var/InternerSpeicher/fhem/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/5.12.2 /opt/lib/perl5/site_perl/5.12.2/mips-linux /opt/lib/perl5/site_perl/5.12.2 /opt/lib/perl5/5.12.2/mips-linux /opt/lib/perl5/5.12.2 . ./FHEM) at /var/InternerSpeicher/fhem/lib/perl5/5.12.2/utf8_heavy.pl line 96.

FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

betateilchen

Ich glaube, wir haben mehrere Fehler.

Nach Deinem Log sollten in /tmp die beiden Dateien "alerts" und "conditions" vorhanden sein.


2013.08.09 13:17:23 3: GDS myGds: retrieving gds/specials/warnings/xml/PVW/Z_CAP* from DWD server
2013.08.09 13:17:22 3: GDS myGds: retrieving gds/specials/observations/tables/germany/* from DWD server


Wenn nicht => Dein Net::FTP funktioniert nicht.

Sollten diese Dateien in /tmp vorhanden sein, scheitert das Decodieren, weil Dein XML::Simple nicht funktioniert, da scheint irgendein Baustein aus SAX zu fehlen.

Teste bitte die hier angehängte Version und schau nach dem Define nochmal ins Log.


-----
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!