98_DSBMobile - Modul zur Abfrage des Vertretungsplans

Begonnen von KernSani, 06 Januar 2020, 20:22:44

Vorheriges Thema - Nächstes Thema

raiderxxl

#75
FHEM Schmiert seit heute komplett ab:

2020.04.20 10:56:09 4: https://www.dsbmobile.de/JsonHandler.ashx/GetData: HTTP response code 400
2020.04.20 10:56:09 5: HttpUtils https://www.dsbmobile.de/JsonHandler.ashx/GetData: Got data, length: 334
2020.04.20 10:56:09 5: HttpUtils response header:
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Mon, 20 Apr 2020 08:56:08 GMT
Connection: close
Content-Length: 334
2020.04.20 10:56:09 5: [dsb] 1st nonblocking HTTP Call returning
2020.04.20 10:56:09 5: [dsb] GetData - received <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Hostname</h2>
<hr><p>HTTP Error 400. The request hostname is invalid.</p>
</BODY></HTML>

malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE HTML PUBLI...") at ./FHEM/98_DSBMobile.pm line 218.


zur info
FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

KernSani

Komisch, bei mir funktioniert es noch. Schaue ich mir heute Abend mal an. Und abschmieren sollte die Kiste natürlich nicht. Das werde ich fixen.


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

karpate

#77
gleiches Problem bei mir wie von raiderxxl beschrieben...nicht die ganze Kiste schmiert ab, sondern fhem stürzt ab und startet neu
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

KernSani

#78
Fix im Anhang (der Fehler wird abgefangen, so dass FHEM nicht mehr stirbt). Ursache analysiere ich heute Abend...

Edit: Schnellschuss funktioniert wohl immernoch nicht (aber tötet FHEM nicht) näheres später...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Ok... Das DSBMobile Modul hat Covid und muss auf die Intensivstation... Die bisher genutzte API funktioniert nicht mehr und bisher widersteht die App meinen Versuchen den Traffic mitzuhören... Die angehängte Version kommt morgen mit dem Update und behebt zum einen den Fehler, dass FHEM abstürzt, zum anderen versetzt sie das Modul in den Winterschlaf... Sobald ich - oder schlauere Menschen - die neue API entschlüsselt haben, wird's ein Update geben...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Ich habe mit dem Entwickler der DSBMobile-App Kontakt aufgenommen und die Antwort erhalten, dass eine Abfrage durch Drittanwendungen weder vorgesehen noch erwünscht sei. Ich bleibe dran, nehme das Modul aber erstmal aus dem SVN :-(
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

tschaedl

Vielen Dank fürs dranbleiben. Wäre toll, wenn du das wieder hinbekommen könntest auch wenn der Hersteller not amused ist.

Gruss Thomas

frankreed

Morgen,

habe auf der folgenden Seite etwas Interessanntes gefunden:

https://github.com/nerrixDE/DSBApi

Dort ist eine API in Python aufgeführt, die auf die Android-API aufsetzt. Und die funktioniert weiterhin, habe das Beispielscript ausgeführt.

Vielleicht wäre das ein Ansatz...

Grüße Patrick

KernSani

Interessant... Muss ich mir mal im Detail anschauen. Danke für den Hinweis.


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Gute Nachrichten! Ich bin endlich dazu gekommen mir mal DSBMobile wieder vorzunehmen und habe es dank der Hinweise aus der Community tatsächlich wieder zum Laufen bekommen :-)
Ich werde heute noch ein bisschen testen und das Ding dann wieder ins SVN stellen, so dass es morgen mit dem Update wieder verfügbar sein sollte.

Danke für die Hinweise!

Oli

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Martin-72

Hallo Olli,

vielen Dank für das Modul und Klasse, wie schnell DU immer antwortest. Nach Corona habe ich es nun bei mir installiert.

Es scheint auch zu klappen, denn es werden die "Nachrichten zum Tag" richtig übernommen. - Allerdings die vom gestrigen Freitag, nicht die von Montag. (wobei für Montag noch keine Liste hochgeladen ist  /  die Datei heißt auch "VerSchheu"). Das kann also alles richtig sein.

Allerdings werden keine Vertretungen übernommen für Klasse 8C (Auch nicht für 05B oder 05B...

Vielen Dank

Martin

Internals:
   FUUID      5f4142fa-f33f-290b-ac8f-7e96dc69412661d3
   FVERSION   98_DSBMobile.pm:v0.0.4-s22014/2020-05-23 TESTING
   NAME       DSBMobile
   NR         372
   STATE      ok
   TYPE       DSBMobile
   OLDREADINGS:
   READINGS:
     2020-08-22 18:58:59   columnNames     Kl.,Std.,Kl.,Fach,Lehrer,Vertr.,Raum,Bemerkung,Neu
     2020-08-22 18:58:57   lastCheck       2020-08-22 18:58
     2020-08-22 18:58:59   lastSync        2020-08-22 18:58
     2020-08-22 18:58:57   lastTTUpdate    2020-08-21 07:21
     2020-08-22 18:58:59   state           ok
     2020-08-22 18:58:59   ti0_sdate       2020-08-24
     2020-08-22 18:58:59   ti0_text        AAR, BER (1-6), BEU, BOR (1-6), DER (1-6), ELF (1-6), KRM (1-6), MAR (1-6), SWA (1-6), UFN, VOG, WAE (1-6)
     2020-08-22 18:58:59   ti0_topic       Abwesende Lehrer-
     2020-08-22 18:58:59   ti1_sdate       2020-08-24
     2020-08-22 18:58:59   ti1_text        EF
     2020-08-22 18:58:59   ti1_topic       Abwesende Klassen-
     2020-08-22 18:58:59   ti2_sdate       2020-08-24
     2020-08-22 18:58:59   ti2_topic       Der Förderunterricht für die Jgst.6 und Jgst. 7 beginnt heute (21.08.20).
Der förderunterricht für die Jgst. 8 und 9 beginnt nächste Woche (28.08.20).
   helper:
Attributes:
   dsb_class  08.*C
   dsb_classReading Kl.
   dsb_interval 1800
   dsb_password schueler
   dsb_user   170162
   room       System,Web
FHEM auf RasPI 2B:
Raspbian GNU/Linux; VERSION="8 (jessie)"
Homematic, InterTechno, IKEA Tradfri
CUL868; CUL433; HM-LAN; Tradfri-Gateway

enno

Moin Oli,

ich verzweifel gerade am Umlaut im Password. "Grütze" und in Verbose 5 kann ich sehen, dass mein Raspi daraus "Grütze" macht. Ich habe jetzt schon das Forum hoch und runter gesucht, aber keine Idee wie ich das richtige Password übermitteln kann.

{$ ENV {LANG}} sagt mir de_DE.UTF-8 also eigentlich alles korrekt. Gibt es noch irgendwo einen Trick. Oder kann ich das ü unter den Atrributen so eingeben, dass dein Modul das richtige daraus macht? Wenn ihr einen Tip für mich habt, bitte schön.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

enno

#87
ok, habe es gelöst:

attr dsb password Grütze

Gruss
  Enno

Edit: Login klappt aber leider nicht.
Einfacher FHEM Anwender auf Intel®NUC

frankreed

Zitat von: frankreed am 05 März 2020, 06:58:46
Mach' ich heute Abend.

Ok, heute Abend ist ein bisschen verspätet:


defmod dsbmobile DSBMobile
attr dsbmobile dsb_class 7D.*
attr dsbmobile dsb_interval 1800
attr dsbmobile dsb_outputFormat %Klasse_n_% %Fach% %Vertreter% Vertretung durch %Raum% im Raum %_Lehrer_% anstatt %Art% Vertretungsart %Text% %Sch__lergruppe%
attr dsbmobile dsb_password xxxxxxx
attr dsbmobile dsb_user yyyyyyy


und


defmod dsb_view abstracttable dsbmobile
attr dsb_view icon time_calendar
attr dsb_view room Konfiguration->Websites
attr dsb_view table-header Datum,Klasse,Stunde,Fach,Art,regulär_bei,Vertretung_durch,in_Raum
attr dsb_view table-rowtemplate tt%d_sdate,tt%d_Stunde,tt%d_Fach,tt%d_Vertreter,tt%d_Text,tt%d_Art,tt%d_Raum,tt%d__Lehrer_



elle

Hallo Oli,

waere es ev. moeglich, ein Attribut einzubauen, ueber das man angeben kann, in welcher Zeile die Spaltennamen stehen?

Die Schule meiner Jungs hat noch eine Zeile vor den tatsaechlichen Spaltennamen, wo noch anderer Kram drin steht, der aber nicht eindeutig ist.

Bei mir habe ich es derzeit so geloest:

                #create readingnames from first line
457                 if ( $j == 0 ) {
458                         $j++;
459                         next;
460                 }
461                 elsif ($j == 1) {
462                     $j++;
463                     @ch = map { makeReadingName($_) } @f;
464                     next;
465                 }
466


aber musste natuerlich nun erstmal das Modul aus dem Update rausnehmen, um die Anpassung nicht zu verlieren.

Vielleicht kann man das ueber ein Attribut regeln und wenn das definiert ist, diese Zeile statt der ersten nehmen?

Ansonsten super Sache! Danke.

Viele Gruesse

Jens