Pünktlich zum Schulbeginn (zumindest für diejenigen bei denen heute noch Feiertag war 8) ) habe ich noch schnell ein Modul geschnitzt, dass den Vertretungsplan der DSBMobile-App - die an der Schule meines Sohnes verwendet wird (und wohl auch an einigen anderen Schulen zumindest in BaWü) -auszulesen.
Das Modul verwendet einige Module, die möglicherweise nicht auf eurem System vorhanden sind, die müssen ggf. über cpan installiert werden:
use IO::Compress::Gzip;
use IO::Uncompress::Gunzip;
use MIME::Base64;
use HTML::TableExtract;
Definedefine dsb DSBMobile
dann unbedingt die Attribute pflegen:
dsb_user und
dsb_password sind die Logindaten der DSBMobile App
In
dsb_class können die Klassen eingeschränkt werden, für die die Vertretungen abgerufen werden sollen. Ich würde das stark empfehlen, sonst werden es schnell ziemlich viele Readings. Hier kann eine Regex mitgegeben werden, zum einen um mehrere Klassen anzugeben (also sowas wie 5a|7b) aber auch, weil z.B. bei meiner Schule gerne Vertretungen (in Sport oder so) für die Klassen 5abc eingetragen werden. Das Modul würde das nicht finden, wenn als Klasse 5b gepflegt ist. Eine passende Regex könnte 5.*b lauten.
Der einzige Get-Befehl holt dann den Vertretungsplan ab. Dies ist bewusst nicht timer gesteuert, sondern sollte über ein at gemacht werden. Bei uns kommen die Updates meistens morgens um ca. 07:40 und dann nochmal nachmittags. Ich hole also einmal um 07:45 und einmal abends aktuelle Daten ab.Über dsb_interval kann eingestellt werden, wie häufig neue Daten abgerufen werden sollen.
Das Teil legt eine Menge readings an, die nicht wirklich gut lesbar sind, daher gibt es noch eine (im ersten Schritt wirklich sehr einfach gehaltene) Funktion um einen Weblink anzulegen
define dsb_web weblink htmlCode {DSBMobile_simpleHTML("dsb")}
Ergebnis sieht dann irgendwie so aus:
Zitat2019-12-20
08c, 5 - 6. Stunde(n) --- (---) statt WELZ (D) Entfall ---
2020-01-07
08c, 1. Stunde(n) ROLK (D) statt WELZ (D) --- ---
08c, 2. Stunde(n) HUMM (D) statt WELZ (D) --- ---
Kann man natürlich schöner machen ;-) Ich könnte mir auch vorstellen ein Mapping mit einzubauen, dass die Lehrerkürzel auf echte Namen und/oder Fächerkürzel auf Fächer mappt etc... Die App enthält auch noch andere Infos (wie z.B. News, oder auch "Info des Tages" im Vertretungsplan), die derzeit noch nicht ausgelesen werden.
Lasst mich wissen, falls ihr Interesse habt, dass das Dings aufgebohrt wird.
Update 25.01.: Mittlerweile werden auch die "Infos des Tages" abgerufen (diese können im Weblink mit einem optionalem zweitem Parameter eingeblendet werden, siehe Commandref). Ausserdem werden auch die "Aushänge" abgerufen und können mittels eines zweiten Weblinks (DSBMobile_infoHTML($name)) angezeigt werden.
Update 11.02.: In Bayern ticken die Vertretungspläne anders (und möglicherweise nicht nur da). Die Readings werden nun dynamisch aufgrund der im Vertretungsplan vorhandenen Spalten abgefragt. Das macht die Ausgabe etwas schwieriger, weil das Modul ja jetzt nicht weiß, welche Readings kommen. Daher gibt es jetzt ein Attribut "dsb_outputFormat", indem die Readings als Platzhalter eingebaut werden können. In meinem Fall sieht das so aus:
%Klasse_n_% %Stunde%. Stunde %Vertreter% (%Fach%, %Raum%) statt %_Lehrer_% (%_Fach_%, %_Raum_%) %Vertr._von% %_Le.__nach% %Vertretungs-Text%
Zusätzlich gibt es auch noch das Attribut "dsb_classReading". Dieses muss gesetzt werden, falls die Spalte mit der Klassenangabe nicht "Klasse(n)" heißt (das ist aber auch in Bayern so).
Ausserdem habe ich noch ein paar kleinere Verbesserungen und Optimierungen vorgenommen:
* die "Info des Tages" jetzt auch angezeigt, wenn für den fraglichen Tag keine Vertretungen vorhanden sind
* wenn über den Get-Befehl die Daten abgeholt werden, wird nichtmehr geprüft ob neue Daten vorhanden sind, sondern es wird auf jeden Fall neu geladen, ebenso werden die Daten auf jeden Fall neu geladen (beim nächsten Timer oder manuellem Get) wenn das "dsb_class" oder "dsb_classReading" geändert wurden.
* ein/zwei Bugs ausgebaut ;-)
Update 12.02.: Kleinen Bug gefixt (Perl-Warnung im Log, wenn keine Vertretungs-Daten gefunden werden)
Update 14.02.: Noch eine Perl-Warnung gefixt, Commandref auf deutsch ergänzt und das Ganze ins SVN eingecheckt, d.h. DSBMobile steht ab morgen mit dem regulären FHEM-Update zur Verfügung.
Hallo,
ich bin an dem Modul sehr interessiert. Leider bekomme ich es nicht zum Laufen. Die Perl Module müssten per Debian Buster repo eigentlich alle installiert sein.
Beim define des Moduls bekomme ich folgende Fehlermeldung:
2020.01.09 22:42:25 1: PERL WARNING: Backslash found where operator expected at ./FHEM/98_DSBMobile.pm line 157, near "gzip \"
2020.01.09 22:42:25 1: PERL WARNING: (Do you need to predeclare gzip?)
2020.01.09 22:42:25 1: PERL WARNING: Backslash found where operator expected at ./FHEM/98_DSBMobile.pm line 192, near "gunzip \"
2020.01.09 22:42:25 1: PERL WARNING: (Do you need to predeclare gunzip?)
2020.01.09 22:42:25 1: reload: Error:Modul 98_DSBMobile deactivated:
syntax error at ./FHEM/98_DSBMobile.pm line 157, near "gzip \"
syntax error at ./FHEM/98_DSBMobile.pm line 192, near "gunzip \"
2020.01.09 22:42:25 0: syntax error at ./FHEM/98_DSBMobile.pm line 157, near "gzip \"
syntax error at ./FHEM/98_DSBMobile.pm line 192, near "gunzip \"
Viellleicht hast Du einen Tip für mich.
Gruß Markus
sudo apt install gzip ?
Danke für Deinen Tip, aber gzip ist installiert und libio-compress-perl, libperlio-gzip-perl ebenso.
was macht cpan install IO::Compress::Gzip
?
Nw ist IO::Compress::Gzip Teil von libio-compress-perl, und das hat er installiert.
https://packages.debian.org/de/sid/libio-compress-perl
Das Problem scheint aber eher von den Backslashes zu kommen
Möglicherweise war es auch ein ganz anderes Problem... Kannst du mal die am ersten Post angehängte Datei probieren?
Ich habe nochmal etwas nachgeforscht, was das "Do you need to predeclare..." verursachen könnte und predeclare gzip und gunzip jetzt. Mir ist ein Rätsel, warum das bei mir funktioniert und bei dir nicht, kann aber mit perl-Version, lib-Version und/oder Betriebssystem zusammenhängen. Auf jeden Fall wäre ich dankbar, @mvatfhem wenn du mit der Version im ersten Post nochmal testen könntest.
Schönen guten Abend,
ich habe die andere Version von KernSani probiert. Das Problem bleibt das Gleiche, ebenso die Fehlermeldung. Die benötigten Perl Module habe ich alle per apt installiert, also nicht über cpan. OS ist Debian Buster. Wenn ich die Backslashes entferne dann wird das Module geladen. Danach habe ich dsb_user und dsb_password eingegeben. Ein get dsb timetable lässt fhem dann aber gnadenlos abstürzen.
Gruß Markus
Hi Markus,
wenn du die backslashes entfernst, versucht gzip ein file zu öffnen, das es nicht gibt. gzip verlangt in diesem Fall zwingend eine Referenz (also mit \). Daher ist der Absturz ohne \ vorhersehbar... Hast du die Version, die im ersten Post angehängt ist probiert, oder die, die ich gestern (bzw. heute) um 00:37:08 in einem separaten Post angehängt hatte?
ich habe beide ausprobiert. Die Fehlermeldung von der Datei mit 11.405 Bytes.
2020.01.11 00:20:40 1: PERL WARNING: Subroutine DSBMobile_Initialize redefined at ./FHEM/98_DSBMobile.pm line 48.
2020.01.11 00:20:40 1: PERL WARNING: Subroutine DSBMobile_Define redefined at ./FHEM/98_DSBMobile.pm line 63.
2020.01.11 00:20:40 1: PERL WARNING: Subroutine DSBMobile_Undefine redefined at ./FHEM/98_DSBMobile.pm line 85.
2020.01.11 00:20:40 1: PERL WARNING: Subroutine DSBMobile_Notify redefined at ./FHEM/98_DSBMobile.pm line 91.
2020.01.11 00:20:40 1: PERL WARNING: Subroutine DSBMobile_Set redefined at ./FHEM/98_DSBMobile.pm line 104.
2020.01.11 00:20:40 1: PERL WARNING: Subroutine DSBMobile_Get redefined at ./FHEM/98_DSBMobile.pm line 110.
2020.01.11 00:20:40 1: reload: Error:Modul 98_DSBMobile deactivated:
syntax error at ./FHEM/98_DSBMobile.pm line 160, near "gzip \"
syntax error at ./FHEM/98_DSBMobile.pm line 195, near "gunzip \"
2020.01.11 00:20:40 0: syntax error at ./FHEM/98_DSBMobile.pm line 160, near "gzip \"
syntax error at ./FHEM/98_DSBMobile.pm line 195, near "gunzip \"
Ich habe ein bisschen experimentiert. Es scheint, dass Perl (5.24 bei mir) ein anderes gzip nutzt (das vom system?). Warum... weiss ich (noch?) nicht.
Dieses einfache Programm bringt den gleichen Fehler:
use IO::Compress::Gzip;
use IO::Uncompress::Gunzip;
my $input = "this is my text";
my $output;
gzip \$input => \$output;
print "$output\n";
pi@pivirtual:~ $perl test.pl
Backslash found where operator expected at test.pl line 5, near "gzip \"
(Do you need to predeclare gzip?)
Syntax error at test.pl line 5, near "gzip \"
Execution of test.pl aborted due to compilation errors.
Aber wenn man "gzip" durch "IO::Compress::Gzip::gzip" ersetzt, geht es.
Dieses Programm funktioniert:
use IO::Compress::Gzip;
use IO::Uncompress::Gunzip;
my $input = "this is my text";
my $output;
IO::Compress::Gzip::gzip \$input => \$output;
print "$output\n";
Also im Modul überall wo gzip und gunzip benutzt werden, mit entspr. Modulname explizit ergänzen, z.B.:
gzip \$json => \$zip;
eher
IO::Compress::Gzip::gzip \$json => \$zip;
Sollte als Workaround funktionieren
Cool. Danke. Passe ich irgendwann am Wochenende an:D
Kurz, weil mobil
Komischerweise geht es auch bei mir mit:
use IO::Compress::Gzip qw(gzip);
use IO::Uncompress::Gunzip qw(gunzip);
my $input = "this is my text";
my $output;
gzip \$input => \$output;
print "$output\n";
gunzip \$output => \$input;
print "$input\n";
Ich habe amenomades workaround eingebaut und ein paar kleiner Optimierungen vorgenommen.
Der HTML-Output ignoriert jetzt Tage in der Vergangenheit.
Aktuelle Version hängt am ersten Post.
Habe gerade noch ein PERL-Warning entdeckt und gefixt... Der eine Downloader der Version von vorhin, bitte nochmal downloaden. Sorry :-[
so, jetzt klappt es :)
Allerdings musste ich noch das use strict; kommentieren, da sonst folgende Meldung kam.
Bareword "UUID::Random::generate" not allowed while "strict subs" in use at ./FHEM/98_DSBMobile.pm line 135.
Über ein "Aufbohren" Deines tollen Modules wäre ich auch sehr erfreut :D
Gruß Markus
Freut mich, dass es klappt :)
Irgendwas ist bei dir aberkomisch ;-) Welche Perl-Version nutzt du denn?
Ich habe UUID::Random::generate mal weggeworfen und die Funktionalität im Modul selbst implementiert (ist von überschaubarer Komplexität).
Was würde dich denn interessieren (bez. "aufbohren"), wo könnte das Modul noch verbessert werden?
Hallo KernSani,
ich benutze die Perl Version von Debian 10 alias Buster, in Version 5.28.
Momentan bin ich schon super zufrieden :) Wenn Du mal Zeit hast, könntest Du noch die Info des Tages integrieren und einen weblink für FTUI einbauen.
VG Markus
Hi Markus,
Hmm, bei mir Perl 5.28 auf raspbian Buster... sollte eigentlich keinen großen Unterschied machen :-S (mal abgesehen von 64 vs. 32 bit)
Rein interessehalber: Was steht denn bei der in der Info des Tages drin? Bei mir steht da meistens sowas wie "Blockierte Räume: 101,104" oder "Abwesende Klassen: 8c"
FTUI habe ich leider keine Ahnung, aber lese ich mich vielleicht mal ein...
Grüße,
Oli
Achso: Ich habe gerade ein Version bei mir im Testbetrieb, die dann doch regelmäßig (z.B. einmal pro Stunde) abfragt ob es was Neues gibt und nur dann synchronisiert... Kommt dann demnächst...
Zitat von: mvatfhem am 13 Januar 2020, 22:02:19
Momentan bin ich schon super zufrieden :) Wenn Du mal Zeit hast, könntest Du noch die Info des Tages integrieren
Erledigt... ausserdem Aushänge, performance Verbesserungen, meta-Json, englische Commandref... neue Version im ersten Post
Hallo KernSani,
danke für das DSB Modul. Funktioniert bei mir auf Anhieb - allerdings sind die Spalten teacherNew und teacherOld offenbar genau vertauscht??
Wahrscheinlich gehen hier in Bayern nicht nur die Uhren anders...
fhem> list dsb
Internals:
CFGFN
FUUID 5e404f57-f33f-7f16-7a73-5e800fe6ee54db2a
FVERSION 98_DSBMobile.pm:v0.0.4-s000002/2020-01-04 TESTING
NAME dsb
NR 1038
STATE ok
TYPE DSBMobile
OLDREADINGS:
READINGS:
2020-02-09 19:37:06 lastCheck 2020-02-09 19:37
2020-02-09 19:37:06 lastSync 2020-02-09 19:37
2020-02-09 19:37:06 lastTTUpdate 2020-02-07 11:23
2020-02-09 19:37:06 state ok
2020-02-09 19:37:06 ti0_sdate 2020-02-07
2020-02-09 19:37:06 ti0_topic Die Leseinsel bleibt heute in der 2. Pause geschlossen!!!
2020-02-09 19:37:06 tt0_class 9gelb_I
2020-02-09 19:37:06 tt0_comment -
2020-02-09 19:37:06 tt0_hour 1
2020-02-09 19:37:06 tt0_roomNew -
2020-02-09 19:37:06 tt0_roomOld -
2020-02-09 19:37:06 tt0_sdate 2020-02-07
2020-02-09 19:37:06 tt0_substof -
2020-02-09 19:37:06 tt0_substto -
2020-02-09 19:37:06 tt0_teacherNew M
2020-02-09 19:37:06 tt0_teacherOld Vertretung
2020-02-09 19:37:06 tt0_topicNew 311
2020-02-09 19:37:06 tt0_topicOld -
2020-02-09 19:37:06 tt1_class 9gelb_I
2020-02-09 19:37:06 tt1_comment -
2020-02-09 19:37:06 tt1_hour 2
2020-02-09 19:37:06 tt1_roomNew -
2020-02-09 19:37:06 tt1_roomOld -
2020-02-09 19:37:06 tt1_sdate 2020-02-07
2020-02-09 19:37:06 tt1_substof -
2020-02-09 19:37:06 tt1_substto -
2020-02-09 19:37:06 tt1_teacherNew M
2020-02-09 19:37:06 tt1_teacherOld Vertretung
2020-02-09 19:37:06 tt1_topicNew 311
2020-02-09 19:37:06 tt1_topicOld -
2020-02-09 19:37:06 tt2_class 9gelb_I
2020-02-09 19:37:06 tt2_comment -
2020-02-09 19:37:06 tt2_hour 4
2020-02-09 19:37:06 tt2_roomNew -
2020-02-09 19:37:06 tt2_roomOld -
2020-02-09 19:37:06 tt2_sdate 2020-02-07
2020-02-09 19:37:06 tt2_substof -
2020-02-09 19:37:06 tt2_substto -
2020-02-09 19:37:06 tt2_teacherNew E
2020-02-09 19:37:06 tt2_teacherOld Betreuung
2020-02-09 19:37:06 tt2_topicNew 311
2020-02-09 19:37:06 tt2_topicOld -
2020-02-09 19:37:06 tt3_class 9gelb_I, 9orange, 9rot?9gelb_I, 9rot
2020-02-09 19:37:06 tt3_comment -
2020-02-09 19:37:06 tt3_hour 5 - 6
2020-02-09 19:37:06 tt3_roomNew -
2020-02-09 19:37:06 tt3_roomOld -
2020-02-09 19:37:06 tt3_sdate 2020-02-07
2020-02-09 19:37:06 tt3_substof -
2020-02-09 19:37:06 tt3_substto -
2020-02-09 19:37:06 tt3_teacherNew EvR
2020-02-09 19:37:06 tt3_teacherOld Betreuung
2020-02-09 19:37:06 tt3_topicNew 307?302
2020-02-09 19:37:06 tt3_topicOld -
2020-02-09 19:37:06 tt4_class 9gelb_I
2020-02-09 19:37:06 tt4_comment -
2020-02-09 19:37:06 tt4_hour 2
2020-02-09 19:37:06 tt4_roomNew -
2020-02-09 19:37:06 tt4_roomOld -
2020-02-09 19:37:06 tt4_sdate 2020-02-10
2020-02-09 19:37:06 tt4_substof -
2020-02-09 19:37:06 tt4_substto -
2020-02-09 19:37:06 tt4_teacherNew M
2020-02-09 19:37:06 tt4_teacherOld Statt-Vertretung
2020-02-09 19:37:06 tt4_topicNew 311
2020-02-09 19:37:06 tt4_topicOld -
2020-02-09 19:37:06 tt5_class 9gelb_I
2020-02-09 19:37:06 tt5_comment -
2020-02-09 19:37:06 tt5_hour 3 - 4
2020-02-09 19:37:06 tt5_roomNew -
2020-02-09 19:37:06 tt5_roomOld -
2020-02-09 19:37:06 tt5_sdate 2020-02-10
2020-02-09 19:37:06 tt5_substof -
2020-02-09 19:37:06 tt5_substto -
2020-02-09 19:37:06 tt5_teacherNew D
2020-02-09 19:37:06 tt5_teacherOld Betreuung
2020-02-09 19:37:06 tt5_topicNew 311
2020-02-09 19:37:06 tt5_topicOld -
Attributes:
dsb_class 9gelb
dsb_password xxxxxxx
dsb_user yyyyyy
room DSB
Gruß
Tobias
Hi Tobias,
kannst du mir den HTML-Quelltext des Vertretungsplanes anhängen? Dann kann ich mal schauen, was da anders ist, als bei mir... Bei mir läuft übrigens eine erweiterte Version der App, die auch die Aushänge ausliest und bez. Stabilität und Perfomance optimiert ist. Werde ich in den nächsten Tagen mal im ersten Post austauschen.
Danke,
Grüße,
Oli
Hallo Oli,
ich habe die Vertretungsplan-Seite im Firefox via Speichern unter - Webseite komplett gespeichert und hier angehangen. Ist es das, was Du brauchst?
Danke & Gruß
Tobi
Hi Tobi,
das hat leider nicht ganz das gewünschte Ergebnis gebracht:
1.) DSBMobile im Browser öffnen
2.) Auf den Vertretungsplan gehen
3.) Click mit rechter Maustaste auf den Vertretungsplan und "Frame-Quelltext anzeigen" (so heisst es in Chrome, FF sollte ähnlich sein)
4.) Das sollte den HTML-Quelltext anzeigen, der so beginnt:
<html><head><meta http-equiv="Content-Type" content="text/html;"><style type="text/css">
body { margin-top: 0px; margin-left: 20px; margin-right: 20px;
background: #fff; color: #272727; font: 80% Arial, Helvetica, sans-serif; }
h1 { color: #ee7f00; font-size: 150%; font-weight: normal;}
h1 strong { font-size: 200%; font-weight: normal; }
h2 { font-size: 125%;}
h1, h2 { margin: 0; padding: 0;}
th { background: #000; color: #fff; }
table.mon_list th, td { padding: 8px 4px;}
.mon_title
{
5.) Den gesamten Text markieren und in ein Textfile kopieren.
Alternativ kannst du auch das DSB Device in FHEM auf "verbose 5" stellen, eine Abfrage durchführen und mir anschließend das FHEM-Log schicken.
Hallo Oli!
Voila (siehe Anhang).
Danke & Gruß
Tobi
Zitat von: tpm88 am 10 Februar 2020, 17:49:09
Hallo Oli!
Voila (siehe Anhang).
Danke & Gruß
Tobi
Das ist ja interessant... Zum einen stelle ich fest, dass ihr die 2020er Version habt, ich habe noch die 2013er. Zum anderen ist der Spaltenaufbau komplett anders als bei uns... Ihr habt wesentlich weniger Spalten. Überrascht mich, dass da überhaupt noch was leidlich sinnvolles rauskommt. Ich baue mal ein Attribut ein, mit dem man das flexibel gestalten kann... das wird aber vor dem Wochenende vermutlich nix.
Grüße,
Oli
Edit: Ich brauche ja garkein Attribut, ich muss nur die Spaltenüberschriften auslesen und daraus die readingnamen generieren... Die Frage ist, wie ich dann eine sinnvolle Ausgabe produziere...
Ich habe dann doch noch eine neue Version gebastelt... Die Readings werden nun dynamisch erzeugt, allerdings grüble ich noch, wie ich da eine vernünftige Ausgabe im weblink hinbekomme. Ideen sind willkommen :-)
Testversion im Anhang (diese enthält auch die oben angesprochenen Verbesserungen bez. Stabilität und liest auch die Aushänge)
Danke für's Testen :-)
Nochmals verbesserte Version (mit Ausgabeformatierung) hängt am ersten Post...
Hallo Oli,
vielen Dank für die neue Version - sieht gut für mich aus.
Ich habe das dsb_outputFormat wie folgt gesetzt (Bayern):
%Klasse_n_%: %Stunde%. Stunde %Art% statt %Fach% in Raum %Raum%. Text: %Text%
Ausgabe sieht dann so aus:
2020-02-12
9gelb_I: 1 - 2. Stunde Betreuung statt Sm in Raum SVNPL. Text: -
9gelb_I: 5. Stunde Betreuung statt E in Raum 311. Text: -
2020-02-13
9gelb_I: 1 - 2. Stunde Vertretung statt M in Raum 311. Text: -
9gelb_I: 5. Stunde Vertretung statt IT in Raum P12. Text: -
9gelb_I: 6. Stunde Vertretung statt IT in Raum P12. Text: -
...
* die "Info des Tages" jetzt auch angezeigt, wenn für den fraglichen Tag keine Vertretungen vorhanden sind
...
Hmm - bei mir wird keine "Info des Tages angezeigt", obwohl folgende Readings da sind:
ti0_topic
Die Bewegte Pause entfällt heute in der 2. Pause.
Die Leseinsel bleibt heute in der Mittagspause geschlossen.
2020-02-12 18:14:05
Gruß
Tobias
Das sieht ja ganz gut aus (finde ich).
Zitat von: tpm88 am 12 Februar 2020, 18:33:59
Hmm - bei mir wird keine "Info des Tages angezeigt", obwohl folgende Readings da sind:
Der simpleHtml-Funktion kann ein zweiter, optionaler Parameter übergeben werden, Wert ist egal (also z.B. "zeigeInfoDesTages" oder einfach "1"), dann wird die Info mit angezeigt.
Mir ist noch ein kleiner Bug aufgefallen, wenn keine Vertretungs-Daten vorhanden sind (gefixte Version im 1. Post).
Wenn du noch weitere Wünsche hast, immer gerne :-)
nochmals aktualisierte Version ins SVN eingecheckt. Steht ab morgen mit regulärem FHEM Update zur Verfügung.
Hi,
gerade dein Modul entdeckt...
Installiert ... kommt aber nix an :-)
Ich hab dir mal die html und screenshots dazu gepackt..
Grüßle
Pascal
Hallo,
bei mir kommt der folgende Fehler:
PERL WARNING: Subroutine DSBMobile_Set redefined at ./FHEM/98_DSBMobile.pm line 117.
2020.02.20 17:33:56 1: PERL WARNING: Subroutine DSBMobile_Get redefined at ./FHEM/98_DSBMobile.pm line 123.
2020.02.20 17:33:56 1: reload: Error:Modul 98_DSBMobile deactivated:
syntax error at ./FHEM/98_DSBMobile.pm line 173, near "encode_json \"
Global symbol "$json" requires explicit package name (did you forget to declare "my $json"?) at ./FHEM/98_DSBMobile.pm line 174.
2020.02.20 17:33:56 0: syntax error at ./FHEM/98_DSBMobile.pm line 173, near "encode_json \"
Global symbol "$json" requires explicit package name (did you forget to declare "my $json"?) at ./FHEM/98_DSBMobile.pm line 174.
Hab' ich ein perl-Modul vergessen? Die im ersten Post benötigten habe ich per apt installiert.....
Danke für die Hilfe
@raiderxxl: Oh Mann, das ist schon wieder anders formatiert... Das DSB-Dingens scheint da recht flexibel zu sein. Bei dir kommen die Daten nach Klasse gruppiert, dadurch gibt es keine Spalte "Klasse(n)" auf die die regex matchen könnte. Das macht es nicht einfacher zu parsen... Heute komme ich nicht dazu, aber morgen müsste ich Zeit haben, mir das im Detail anzusehen...
Edit: Vielleicht solltest du den Screenshot (mit user etc...) entfernen.
Zitat von: frankreed am 20 Februar 2020, 17:40:53
Hallo,
bei mir kommt der folgende Fehler:
PERL WARNING: Subroutine DSBMobile_Set redefined at ./FHEM/98_DSBMobile.pm line 117.
2020.02.20 17:33:56 1: PERL WARNING: Subroutine DSBMobile_Get redefined at ./FHEM/98_DSBMobile.pm line 123.
2020.02.20 17:33:56 1: reload: Error:Modul 98_DSBMobile deactivated:
syntax error at ./FHEM/98_DSBMobile.pm line 173, near "encode_json \"
Global symbol "$json" requires explicit package name (did you forget to declare "my $json"?) at ./FHEM/98_DSBMobile.pm line 174.
2020.02.20 17:33:56 0: syntax error at ./FHEM/98_DSBMobile.pm line 173, near "encode_json \"
Global symbol "$json" requires explicit package name (did you forget to declare "my $json"?) at ./FHEM/98_DSBMobile.pm line 174.
Hab' ich ein perl-Modul vergessen? Die im ersten Post benötigten habe ich per apt installiert.....
Danke für die Hilfe
JSON sollte eigentlich default-mäßig gehen. Probier mal JSON::XS zu installieren
Mmmmmm.....
Habe jetzt mal JSON:XS nachinstalliert und fhem neu gestartet.
Jetzt sieht es so aus:
2020.02.20 18:41:19 1: PERL WARNING: Backslash found where operator expected at ./FHEM/98_DSBMobile.pm line 173, near "encode_json \"
2020.02.20 18:41:19 1: PERL WARNING: (Do you need to predeclare encode_json?)
2020.02.20 18:41:19 1: reload: Error:Modul 98_DSBMobile deactivated:
syntax error at ./FHEM/98_DSBMobile.pm line 173, near "encode_json \"
Global symbol "$json" requires explicit package name (did you forget to declare "my $json"?) at ./FHEM/98_DSBMobile.pm line 174.
2020.02.20 18:41:19 0: syntax error at ./FHEM/98_DSBMobile.pm line 173, near "encode_json \"
Global symbol "$json" requires explicit package name (did you forget to declare "my $json"?) at ./FHEM/98_DSBMobile.pm line 174.
Geht also nicht.
Bist du
Zitat von: frankreed am 20 Februar 2020, 18:45:07
Mmmmmm.....
Habe jetzt mal JSON:XS nachinstalliert und fhem neu gestartet.
Jetzt sieht es so aus:
2020.02.20 18:41:19 1: PERL WARNING: Backslash found where operator expected at ./FHEM/98_DSBMobile.pm line 173, near "encode_json \"
2020.02.20 18:41:19 1: PERL WARNING: (Do you need to predeclare encode_json?)
2020.02.20 18:41:19 1: reload: Error:Modul 98_DSBMobile deactivated:
syntax error at ./FHEM/98_DSBMobile.pm line 173, near "encode_json \"
Global symbol "$json" requires explicit package name (did you forget to declare "my $json"?) at ./FHEM/98_DSBMobile.pm line 174.
2020.02.20 18:41:19 0: syntax error at ./FHEM/98_DSBMobile.pm line 173, near "encode_json \"
Global symbol "$json" requires explicit package name (did you forget to declare "my $json"?) at ./FHEM/98_DSBMobile.pm line 174.
Geht also nicht.
Schreib mal im Modul ganz oben noch ein
use JSON::XS qw( encode_json decode_json );
rein und probiere nochmal einen reload
Keine Hektik hier... ich hab Zeit 8)
User muss ich nicht löschen der ist öffentlich bekannt... gibt nur diesen für die Schule.
Grüßle
Pascal
Ok, done. Beide Probleme sollten mit dem morgigen Update gelöst sein.
Hallo,
danke erst einmal für den schnellen Fix. Ich probier' ihn heute abend mal aus und gebe Rückmeldung.
Grüße
Modul geht mit dem Fix!
Danke!
Hi,
Modul funktioniert wunderbar.
Eine kleine Anregung für die einfache HTML-Ausgabe:
Könnte man die Überschriften, die ich mit mit dem Attribut "dsb_OutputFormat" festgelegt habe, als Überschrift bei den einzelnen Tagen noch mit anzeigen lassen?
Und die einzelnen Spalten mit einem Tab etwas mehr "auseinanderziehen"? Momentan ist alles sehr gedrängt.
Sorry meine HTML-Kenntnisse sind sehr rudimentär....
Danke!
PS: Ob man das statt der HTML-Ausgabe auch als Readingsgroup hinbekommen würde bin ich mir sicher, aber das haut bei mir nicht hin.
Zitat von: KernSani am 21 Februar 2020, 01:31:44
Ok, done. Beide Probleme sollten mit dem morgigen Update gelöst sein.
Funktioniert DANKE!
Grüßle
Hallo,
ich konnte dsb erfolgreich definieren. Aber bei mir funktionieren zwei Dinge nicht:
1. das dsb_interval ist auf 3600 gesetzt. Doch leider wird keine Aktualisierung vorgenommen. Ein manuelles get timetable funktioniert dagegen einwandfrei.
2. ggf. liegt es dsb_class Attribute, aber es wird für den 2.3. die Einträge der 5c nicht abgeholt, obwohl vorhanden (siehe Screenshot)
Vielleicht hat mir jemanden einen Tipp...
Danke und Gruß
Internals:
CFGFN
FUUID 5e50232a-f33f-c7cb-14bf-40e167e428a70437
FVERSION 98_DSBMobile.pm:v0.0.4-s21240/2020-02-21 TESTING
NAME dsb
NR 1334
STATE ok
TYPE DSBMobile
OLDREADINGS:
READINGS:
2020-02-24 17:31:18 columnNames Klasse_n_,Stunde,_Fach_,Fach,Raum,Text
2020-02-24 17:31:16 i0_date 17.02.2020 07:10
2020-02-24 17:31:16 i0_title DSB-Aushang Spiele-AG
2020-02-24 17:31:16 i0_url https://app.dsbcontrol.de/data/2f655f00-f85f-4019-88f7-c80db0f84a18/1ab893c0-0886-4694-aa22-c51cd6a8be00/1ab893c0-0886-4694-aa22-c51cd6a8be00_000.png
2020-02-24 17:31:16 i1_date 23.01.2020 11:48
2020-02-24 17:31:16 i1_title Teilnehmerliste Musicalausfahrt
2020-02-24 17:31:16 i1_url https://app.dsbcontrol.de/data/2f655f00-f85f-4019-88f7-c80db0f84a18/f2424a86-3ad3-4a00-a0fd-9ad9ed837d97/f2424a86-3ad3-4a00-a0fd-9ad9ed837d97_000.jpg
2020-02-24 17:31:16 i2_date 23.01.2020 11:48
2020-02-24 17:31:16 i2_title Ankündigungsplakatx
2020-02-24 17:31:16 i2_url https://app.dsbcontrol.de/data/2f655f00-f85f-4019-88f7-c80db0f84a18/928a58cd-5a5c-4633-96bb-f49d0b99f2e9/928a58cd-5a5c-4633-96bb-f49d0b99f2e9_000.png
2020-02-24 17:31:16 i3_date 20.02.2020 15:56
2020-02-24 17:31:16 i3_title 7bx
2020-02-24 17:31:16 i3_url https://app.dsbcontrol.de/data/2f655f00-f85f-4019-88f7-c80db0f84a18/2b4307e4-d1f2-411b-a2bd-a9146334ce44/2b4307e4-d1f2-411b-a2bd-a9146334ce44_000.png
2020-02-24 17:31:16 i4_date 20.02.2020 15:56
2020-02-24 17:31:16 i4_title Dok1x
2020-02-24 17:31:16 i4_url https://app.dsbcontrol.de/data/2f655f00-f85f-4019-88f7-c80db0f84a18/67ca3539-efef-4141-81b0-55499ea137ee/67ca3539-efef-4141-81b0-55499ea137ee_000.png
2020-02-24 17:31:16 i5_date 20.02.2020 15:56
2020-02-24 17:31:16 i5_title Israelx
2020-02-24 17:31:16 i5_url https://app.dsbcontrol.de/data/2f655f00-f85f-4019-88f7-c80db0f84a18/488510ad-618f-4031-991a-23dd4a0ed628/488510ad-618f-4031-991a-23dd4a0ed628_000.png
2020-02-24 17:31:16 lastCheck 2020-02-24 17:31
2020-02-24 17:31:18 lastSync 2020-02-24 17:31
2020-02-24 17:31:16 lastTTUpdate 2020-02-20 15:57
2020-02-24 17:31:18 state ok
2020-02-24 17:31:18 ti0_sdate 2020-02-20
2020-02-24 17:31:18 ti0_topic Ethik Klasse 8: 1.+2. Std. in 313
helper:
Attributes:
dsb_class 5.*c
dsb_interval 3600
dsb_password ####
dsb_user ####
Hi Karpate,
zu 1.: Beim regelmäßigen Check holt das Modul nur neue Daten, wenn sich das Aktualisierungsdatum auf Serverseite geändert hat, d.h wenn es tatsächlich Änderungen gibt.
zu 2.: Miss ich mir später mal genauer anschauen. Auf den ersten Blick sollte das passen... Hast du mal nur mit ,,5c" im Attribut probiert?
Grüße,
Oli
Gesendet von iPhone mit Tapatalk
Hi Karpate,
ich hab mir das Ganze nochmal angesehen und ein ähnliches Szenario bei mir durchgespielt. Kann keine Probleme entdecken... Kannst du den HTML Quelltext (so wie hier beschrieben: https://forum.fhem.de/index.php/topic,107104.msg1022923.html#msg1022923) anhängen?
Grüße,
Oli
Hi Oli,
1. Danke.
2. Ja versucht, auch mit "5c" werden keine Einträge angezeigt.
Habe dir den HTML Quelltext angehängt...
Danke und Gruß
Ingo
Hi Ingo,
komischerweise werden bei mir auch mit deinem HTML-Quelltext die "5c" Einträge (egal ob als 5c oder 5.*c) korrekt extrahiert.
tt0_Fach --- 2020-02-25 14:06:44
tt0_Klasse_n_ 5c 2020-02-25 14:06:44
tt0_Raum --- 2020-02-25 14:06:44
tt0_Stunde 1 2020-02-25 14:06:44
tt0_Text - 2020-02-25 14:06:44
tt0__Fach_ E 2020-02-25 14:06:44
tt0_sdate 2020-03-02 2020-02-25 14:06:44
tt1_Fach LB 2020-02-25 14:06:44
tt1_Klasse_n_ 5c 2020-02-25 14:06:44
tt1_Raum 413 2020-02-25 14:06:44
tt1_Stunde 2 2020-02-25 14:06:44
tt1_Text Lernbox 2020-02-25 14:06:44
tt1__Fach_ D 2020-02-25 14:06:44
tt1_sdate 2020-03-02 2020-02-25 14:06:44
tt2_Fach E 2020-02-25 14:06:44
tt2_Klasse_n_ 5c 2020-02-25 14:06:44
tt2_Raum 413 2020-02-25 14:06:44
tt2_Stunde 3 2020-02-25 14:06:44
tt2_Text - 2020-02-25 14:06:44
tt2__Fach_ D 2020-02-25 14:06:44
tt2_sdate 2020-03-02 2020-02-25 14:06:44
Kannst du dein DSB Device auf verbose 4 setzen, get timetetable machen und die zugehörigen Logeinträge posten (wenn das nichts hilft müssen wir auf verbose 5 gehen, das möchte ich uns aber vorerst ersparen :D)
Grüße,
Oli
Hi Oli,
Danke für deine Hilfe. Ich habe gleich mal ein Verbose 5 angehängt
Gruß Ingo
Edit: ups, sorry da hat der tag
gefehlt...ich habe es dir angehängt
Hmmm... da fehlt der interessante Teil. hat der Editor da evtl. was abgeschnitten? Vielleicht kannst du es als Textfile anhängen.
Zitat von: frankreed am 24 Februar 2020, 11:41:27
Hi,
Modul funktioniert wunderbar.
Eine kleine Anregung für die einfache HTML-Ausgabe:
Könnte man die Überschriften, die ich mit mit dem Attribut "dsb_OutputFormat" festgelegt habe, als Überschrift bei den einzelnen Tagen noch mit anzeigen lassen?
Und die einzelnen Spalten mit einem Tab etwas mehr "auseinanderziehen"? Momentan ist alles sehr gedrängt.
Sorry meine HTML-Kenntnisse sind sehr rudimentär....
Danke!
PS: Ob man das statt der HTML-Ausgabe auch als Readingsgroup hinbekommen würde bin ich mir sicher, aber das haut bei mir nicht hin.
Mit dem morgigen update steht eine weiter Funktion für den Weblink zur Verfügung, die eine "echte" Tabelle, mit Überschriften erzeugt.
Funktioniert genauso wie simpleHTML:
defmod dsb_web weblink htmlCode {DSBMobile_tableHTML("dsb",1)}
Unschön ist noch, dass die Überschriften den Reading-Namen entsprechen. Da lass ich mir noch was einfallen (z.B., dass die Original-Spaltenbezeichnungen übernommen werden)
Edit: Habe mir gerade deinen Post nochmal genauer durchgelesen... wahrscheinlich ist das jetzt nicht ganz das, was du willst... Schau's dir mal an und gib Feedback...
Zitat von: KernSani am 25 Februar 2020, 21:49:34
Hmmm... da fehlt der interessante Teil. hat der Editor da evtl. was abgeschnitten? Vielleicht kannst du es als Textfile anhängen.
Hi Oli,
siehe Datei in meinem vorherigen Post.
Danke
Ingo
Zitat von: karpate am 26 Februar 2020, 10:16:32
Hi Oli,
siehe Datei in meinem vorherigen Post.
Danke
Ingo
Oh, da habe ich deine Änderung verpasst... Dieses DSBMobile wird ja immer interessanter... Bei Dir gibt es pro Tag ein separate Seite? Bisher war ich davon ausgegangen, dass der Vertretungsplan für alle Tage auf einer Seite kommt... Da muss ich dann wohl noch einen Loop einbauen... Das könnte heute eng werden ;-) Aber ich hoffe ich kriege es hin, bevor die Ferien vorbei sind.
P.S.: Es hätte gereicht nur das DSB Device auf verbose 5 zu setzen ;-)
Zitat von: KernSani am 26 Februar 2020, 23:06:05
Das könnte heute eng werden ;-) Aber ich hoffe ich kriege es hin, bevor die Ferien vorbei sind.
War dann doch nicht so komplex ;) Bitte mal angehängte Version probieren. In meinen konstruierten Tests hat es funktioniert, aber ich hätte gerne einen echten Test bevor ich die Version einchecke.
Danke,
Oli
Zitat von: KernSani am 27 Februar 2020, 00:41:19
War dann doch nicht so komplex ;) Bitte mal angehängte Version probieren. In meinen konstruierten Tests hat es funktioniert, aber ich hätte gerne einen echten Test bevor ich die Version einchecke.
Danke,
Oli
Hallo Oli,
war mir nicht bewußt das es nicht "normal" ist für jeden Tag eine eigene Seite zu haben ;)
Danke für die Testversion. Habe diese ausprobiert. Nach get timetable steht im Log jetzt eine Perlmeldung, die "zweite Seite" wird nicht angezeigt.
2020.02.27 06:28:30 1: PERL WARNING: Use of uninitialized value $ttpage in concatenation (.) or string at ./FHEM/98_DSBMobile.pm line 321.
Habe dir gleich ein Verbose des Devices noch angehängt 8)
Danke und Gruß Ingo
Zitat von: karpate am 27 Februar 2020, 06:36:12
Hallo Oli,
war mir nicht bewußt das es nicht "normal" ist für jeden Tag eine eigene Seite zu haben ;)
Tja, dieses DSBMobile scheint sehr flexibel konfigurierbar sein... Die angehängte Version sollte jetzt auch die zweite (oder weitere) Seiten vernünftig extrahieren.
Grüße,
Oli
Hallo Oli,
habe deine neue Version gerade getestet. Ich konnte keine Änderungen in den Readings festestellen.
Ein List und Verbose 5 habe ich angehängt.
Gruß Ingo
Internals:
FUUID 5e50232a-f33f-c7cb-14bf-40e167e428a70437
FVERSION 98_DSBMobile.pm:v0.0.4-s21278/2020-02-25 TESTING
NAME dsb
NR 1254
STATE ok
TYPE DSBMobile
OLDREADINGS:
READINGS:
2020-02-28 08:25:27 columnNames Klasse_n_,Stunde,_Fach_,Fach,Raum,Text
2020-02-27 15:57:29 error https://www.dsbmobile.de/JsonHandler.ashx/GetData: Can't connect(2) to https://www.dsbmobile.de:443: SSL wants a read first
2020-02-28 08:25:24 i0_date 17.02.2020 07:10
2020-02-28 08:25:24 i0_title DSB-Aushang Spiele-AG
2020-02-28 08:25:24 i0_url https://app.dsbcontrol.de/data/2f655f00-f85f-4019-88f7-c80db0f84a18/1ab893c0-0886-4694-aa22-c51cd6a8be00/1ab893c0-0886-4694-aa22-c51cd6a8be00_000.png
2020-02-28 08:25:24 i1_date 23.01.2020 11:48
2020-02-28 08:25:24 i1_title Teilnehmerliste Musicalausfahrt
2020-02-28 08:25:24 i1_url https://app.dsbcontrol.de/data/2f655f00-f85f-4019-88f7-c80db0f84a18/f2424a86-3ad3-4a00-a0fd-9ad9ed837d97/f2424a86-3ad3-4a00-a0fd-9ad9ed837d97_000.jpg
2020-02-28 08:25:24 i2_date 23.01.2020 11:48
2020-02-28 08:25:24 i2_title Ankündigungsplakatx
2020-02-28 08:25:24 i2_url https://app.dsbcontrol.de/data/2f655f00-f85f-4019-88f7-c80db0f84a18/928a58cd-5a5c-4633-96bb-f49d0b99f2e9/928a58cd-5a5c-4633-96bb-f49d0b99f2e9_000.png
2020-02-28 08:25:24 i3_date 20.02.2020 15:56
2020-02-28 08:25:24 i3_title 7bx
2020-02-28 08:25:24 i3_url https://app.dsbcontrol.de/data/2f655f00-f85f-4019-88f7-c80db0f84a18/2b4307e4-d1f2-411b-a2bd-a9146334ce44/2b4307e4-d1f2-411b-a2bd-a9146334ce44_000.png
2020-02-28 08:25:24 i4_date 20.02.2020 15:56
2020-02-28 08:25:24 i4_title Dok1x
2020-02-28 08:25:24 i4_url https://app.dsbcontrol.de/data/2f655f00-f85f-4019-88f7-c80db0f84a18/67ca3539-efef-4141-81b0-55499ea137ee/67ca3539-efef-4141-81b0-55499ea137ee_000.png
2020-02-28 08:25:24 i5_date 20.02.2020 15:56
2020-02-28 08:25:24 i5_title Israelx
2020-02-28 08:25:24 i5_url https://app.dsbcontrol.de/data/2f655f00-f85f-4019-88f7-c80db0f84a18/488510ad-618f-4031-991a-23dd4a0ed628/488510ad-618f-4031-991a-23dd4a0ed628_000.png
2020-02-28 08:25:24 lastCheck 2020-02-28 08:25
2020-02-28 08:25:27 lastSync 2020-02-28 08:25
2020-02-28 08:25:24 lastTTUpdate 2020-02-20 15:57
2020-02-28 08:25:27 state ok
2020-02-28 08:25:27 ti0_sdate 2020-02-20
2020-02-28 08:25:27 ti0_topic Ethik Klasse 8: 1.+2. Std. in 313
helper:
Attributes:
dsb_class 5.*c
dsb_interval 600
dsb_password aagy
dsb_user 163962
group Steuerung
room 999_Status
Oh Mann, doofer Fehler... jetzt aber :)
Zitat von: KernSani am 28 Februar 2020, 20:22:14
Oh Mann, doofer Fehler... jetzt aber :)
Hi Oli,
cool, ich sehe die Vertretungen für den 02.03.2020.
Vielen Dank für deine Hartnäckigkeit ;)
Versendest du z.B. per Telegram die Readings?
Gruß Ingo
Zitat von: karpate am 28 Februar 2020, 21:29:50
Versendest du z.B. per Telegram die Readings?
Nein, ich habe aktuelle Vertretungen nur neben Terminen (Google Kalender) etc... auf meiner FHEM-Startseite (auch am Wandtablet), damit übersehe ich sie eigentlich nicht, und mein Sohn schaut sowieso ständig drauf :D
Zum Versenden würde sich wahrscheinlich besser die Rückgabe der simpleHTML (oder tableHTML)-Funktion eignen...
Mal noch ne doofe frage...
Kann das Modul auch ne zweite Seite? (Heute /Morgen) Denn bei uns enthält der Vertretungsplan immer 2 Tage?
Ich sehe zum Bleistift keine Benachrichtigung obwohl für morgen was drin steht...
Daten sind im #33 zu sehen...
Grüßle
Pascal
Zitat von: raiderxxl am 02 März 2020, 07:53:47
Mal noch ne doofe frage...
Kann das Modul auch ne zweite Seite? (Heute /Morgen) Denn bei uns enthält der Vertretungsplan immer 2 Tage?
Ich sehe zum Bleistift keine Benachrichtigung obwohl für morgen was drin steht...
Daten sind im #33 zu sehen...
Grüßle
Pascal
Guck mal meinen vorletzten Post, da hängt eine Version dran, die auch mehrere Seiten kann.
Gesendet von iPhone mit Tapatalk
Hi,
gerade geladen FHEM neu gestartet... ändert aber nix
Bei mir war ja auch das Problem das es keine Zeile mit Klassen gab... da war ne extra Zeile dazwischen....
2020.03.02 08:22:26 5: [dsb] Arguments (in json) to encode'{"OsVersion":"27 8.1.0","AppId":"15ec8374-58ca-b84f-381c-87bc9aa6aa10","PushId":"","BundleId":"de.heinekingmedia.dsbmobile","UserId":"231801","appversion":"2.5.9","Date":"2020-03-02T08:22:26.999+0100","LastUpdate":"2020-03-02T08:22:26.999+0100","UserPw":"mobileLUS","Language":"de","Device":"Nexus 4"}'
2020.03.02 08:22:26 5: [dsb] 1st nonblocking HTTP Call starting
2020.03.02 08:22:27 5: [dsb] 1st nonblocking HTTP Call returning
2020.03.02 08:22:27 5: [dsb] GetData - received {"d":"H4sIAAAAAAAEAO1ZzW7bOBC+L7DvIOhcWhRN/eXWTbdAgCQI4gB7WBQFRVK2EJkyLKrZRdC32TfZF1vKtBVJplRbdQJ0ax5iY4bzw2/GnBnm+ddfLMu+50WZSZozbl9Y8F2DNpNElsWVSHLFsW3NUsS1vBKM/6WIwG3uv+GivJJ8WSjOnxXdsp71h9qyE9EWNInm4joVjy/aN+SHVGaVL0pkQTLJG6zLRZqxhvqWiZYZ912b3DC1kHJVXDgOWa0mrIgVR67zbMK4U6gDp9Qhgq3zlKWKUzgPacaLyUrM7bbG2sv3ZbH49x8x550N93kuFb/lXuUJax93S/5AJDcyajv7IlySNDMLkXlhZFzm4uHvFW/FYcu6W6e5ib4fuIFg6PXcJdTnRtT3fRzFIAxwBDBKCAhDHoIkiAIPJQH0Itp1uoUPdCdwOkEQQcuNLjzXuLnG7C7PUpk+mjX2wjcIYQdGZGL3QKlx6IFT6+2FtFoGWLXK74JWg3EEvBqeAyDWmmuY+393jEjiID+I4TRwQeRiF2DIYhBN3RCg2I89PE18z2XOIYd0BH8qJgu5zPq9HwiuDkQdYL9vy0CQdVQGAq1t1MH+1G+Df0n50ya8J4NnpZVu7jST3a9Gb87Jd06+t0i+faLJwaZze3r2E7i/IMXIC0OIEUBhwgDGQQQijCIQcBpDj+LYS/BwQUJ10sLgAqHhgnSLsPUHl5KvrXs+T3NBjHnyvytOY2HWYBwBtYbnSLi1lb27ghK64KhzXXys+kHH3S5g+LNbziGHdp44kQu+/jmvjIMQepMro03oyvfKtq+aXojsGy4XObsly01ayiqHOuPCLX+6zEsh9yJgz8gXfk2KzThWict1yV82ND0wj0Iddd8zCi3VbyTO+NA4dJepYeg8C9Wrv/SEnhsRBilAHvMA9vFUJb/PAfO9CGLKPUaTY0pPNFx6Psx+s5Z5rFLvp6g4Y9HVYByBsIZnh3JRxoX8DFUrqy70N+pLDzmqc5hjRxSa6Y9UaA6C6DUGo3MamtMQndNwdBr+gP3OtnE4Vc+z+/pitWOx8WZsNDJgYHfE/afrlzflbz5dz1S/JNN5s8s74vH6ZB3bTM0+qZgPvl//nipXeZaVYs6FPSq+xdbM6PAmJCuO6mlP9rz/kXMWE/o4hNBuzzhwErP0K4KDTgXO+zgv5RAym/8NjUKFVKrfDpLpqSC5zuffwETvGIdKZpIdD8urXpPVh1asTkeE4FlrmrJvFG5ESN0GBZRA7KnxHnrVoB9QF4ShmwBMMaQQJknshqrQfP0PY8++JZMcAAA="}
2020.03.02 08:22:27 5: [dsb] JSON received: {
'Resultcode' => 0,
'StartIndex' => -1,
'ChannelType' => 0,
'ResultStatusInfo' => '',
'MandantId' => '7ca04579-05fd-47c1-881f-4c40c00ffb18',
'ResultMenuItems' => [
{
'Title' => 'Inhalte',
'NewCount' => 0,
'IconLink' => '',
'Childs' => [
{
'Title' => "Aush\x{c3}\x{a4}nge",
'Index' => 1,
'MethodName' => 'tiles',
'Root' => {
'Id' => '',
'Tags' => '',
'Detail' => '',
'Title' => '',
'ConType' => 0,
'Index' => 0,
'Date' => '',
'Childs' => [
{
'Date' => '01.03.2020 19:51',
'Childs' => [
{
'Detail' => 'https://app.dsbcontrol.de/data/267b0371-9141-40db-9318-2b6b543f651d/2c66649b-8749-42fa-88e8-f79752f7059c/news.html',
'ConType' => 6,
'Title' => 'Politik',
'Index' => 0,
'Id' => '2c66649b-8749-42fa-88e8-f79752f7059c',
'Tags' => '',
'Prio' => 0,
'Preview' => '267b0371-9141-40db-9318-2b6b543f651d/2c66649b-8749-42fa-88e8-f79752f7059c/preview.png',
'Childs' => [],
'Date' => '01.03.2020 19:51'
},
{
'Date' => '01.03.2020 19:51',
'Childs' => [],
'Preview' => '267b0371-9141-40db-9318-2b6b543f651d/2c66649b-8749-42fa-88e8-f79752f7059c/preview.png',
'Prio' => 0,
'Tags' => '',
'Id' => '2c66649b-8749-42fa-88e8-f79752f7059c',
'Index' => 0,
'Title' => 'Politik',
'Detail' => 'https://app.dsbcontrol.de/data/267b0371-9141-40db-9318-2b6b543f651d/2c66649b-8749-42fa-88e8-f79752f7059c/news.html',
'ConType' => 6
}
],
'Prio' => 0,
'Preview' => '',
'Id' => '2c66649b-8749-42fa-88e8-f79752f7059c',
'Tags' => '',
'Title' => 'Politik',
'Detail' => '',
'ConType' => 2,
'Index' => 0
},
{
'Childs' => [
{
'Date' => '02.03.2020 07:22',
'Childs' => [],
'Prio' => 0,
'Preview' => '267b0371-9141-40db-9318-2b6b543f651d/b2588042-28fd-4479-9429-7ecb05c4b5f4/preview.png',
'Id' => 'b2588042-28fd-4479-9429-7ecb05c4b5f4',
'Tags' => '',
'Detail' => 'https://cache2.dsbcontrol.de/Files/11111111-1111-1111-1111-111111111111/b2588042-28fd-4479-9429-7ecb05c4b5f4/weather.html',
'Title' => 'N24 Wetter Regional',
'ConType' => 6,
'Index' => 0
}
],
'Date' => '02.03.2020 07:22',
'Prio' => 0,
'Preview' => '',
'Detail' => '',
'ConType' => 2,
'Title' => 'N24 Wetter Regional',
'Index' => 0,
'Id' => 'b2588042-28fd-4479-9429-7ecb05c4b5f4',
'Tags' => ''
}
],
'Prio' => 0,
'Preview' => ''
},
'SaveLastState' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
'NewCount' => 0,
'Childs' => [],
'IconLink' => 'https://app.dsbcontrol.de/static/androidicons/Tiles.png'
},
{
'Title' => "Pl\x{c3}\x{a4}ne",
'Index' => 0,
'Root' => {
'Tags' => '',
'Id' => '',
'Index' => 0,
'Title' => '',
'Detail' => '',
'ConType' => 0,
'Preview' => '',
'Prio' => 0,
'Date' => '',
'Childs' => [
{
'Title' => 'DSB mobile',
'Detail' => '',
'ConType' => 2,
'Index' => 0,
'Id' => '8519ad0c-25d5-4643-946e-d65904ce5dcf',
'Tags' => '',
'Prio' => 0,
'Preview' => '',
'Childs' => [
{
'Preview' => '267b0371-9141-40db-9318-2b6b543f651d/8519ad0c-25d5-4643-946e-d65904ce5dcf/preview.png',
'Prio' => 0,
'Childs' => [],
'Date' => '02.03.2020 07:29',
'Index' => 0,
'Detail' => 'https://app.dsbcontrol.de/data/267b0371-9141-40db-9318-2b6b543f651d/8519ad0c-25d5-4643-946e-d65904ce5dcf/subst_001.htm',
'ConType' => 3,
'Title' => 'subst_001.htm',
'Tags' => '',
'Id' => '8519ad0c-25d5-4643-946e-d65904ce5dcf'
},
{
'Date' => '02.03.2020 07:29',
'Childs' => [],
'Prio' => 0,
'Preview' => '267b0371-9141-40db-9318-2b6b543f651d/8519ad0c-25d5-4643-946e-d65904ce5dcf/preview.png',
'Id' => '8519ad0c-25d5-4643-946e-d65904ce5dcf',
'Tags' => '',
'ConType' => 3,
'Title' => 'subst_001.htm',
'Detail' => 'https://app.dsbcontrol.de/data/267b0371-9141-40db-9318-2b6b543f651d/8519ad0c-25d5-4643-946e-d65904ce5dcf/subst_002.htm',
'Index' => 0
}
],
'Date' => '02.03.2020 07:29'
}
]
},
'MethodName' => 'timetable',
'SaveLastState' => $VAR1->{'ResultMenuItems'}[0]{'Childs'}[0]{'SaveLastState'},
'NewCount' => 0,
'Childs' => [],
'IconLink' => 'https://app.dsbcontrol.de/static/androidicons/Timetable.png'
}
],
'Index' => 0,
'MethodName' => '',
'SaveLastState' => $VAR1->{'ResultMenuItems'}[0]{'Childs'}[0]{'SaveLastState'}
},
{
'SaveLastState' => $VAR1->{'ResultMenuItems'}[0]{'Childs'}[0]{'SaveLastState'},
'MethodName' => '',
'Childs' => [
{
'NewCount' => 0,
'Title' => 'Einstellungen',
'Childs' => [],
'IconLink' => 'https://app.dsbcontrol.de/static/androidicons/Settings.png',
'Index' => 0,
'MethodName' => 'settings',
'SaveLastState' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
},
{
'SaveLastState' => $VAR1->{'ResultMenuItems'}[1]{'Childs'}[0]{'SaveLastState'},
'MethodName' => 'feedback',
'IconLink' => 'https://app.dsbcontrol.de/static/androidicons/Feedback.png',
'Childs' => [],
'Index' => 1,
'NewCount' => 0,
'Title' => 'Feedback'
},
{
'NewCount' => 0,
'Title' => 'Info',
'Childs' => [],
'IconLink' => 'https://app.dsbcontrol.de/static/androidicons/About.png',
'Index' => 2,
'MethodName' => 'about',
'SaveLastState' => $VAR1->{'ResultMenuItems'}[1]{'Childs'}[0]{'SaveLastState'}
},
{
'SaveLastState' => $VAR1->{'ResultMenuItems'}[1]{'Childs'}[0]{'SaveLastState'},
'MethodName' => 'logout',
'IconLink' => 'https://app.dsbcontrol.de/static/androidicons/Logout.png',
'Childs' => [],
'Index' => 3,
'NewCount' => 0,
'Title' => 'Logout'
}
],
'Index' => 1,
'IconLink' => '',
'NewCount' => 0,
'Title' => 'Sonstiges'
}
]
}
2020.03.02 08:22:27 4: [dsb] Extracted the url: https://app.dsbcontrol.de/data/267b0371-9141-40db-9318-2b6b543f651d/8519ad0c-25d5-4643-946e-d65904ce5dcf/subst_001.htm
2020.03.02 08:22:27 5: [dsb] processing page https://app.dsbcontrol.de/data/267b0371-9141-40db-9318-2b6b543f651d/8519ad0c-25d5-4643-946e-d65904ce5dcf/subst_001.htm
2020.03.02 08:22:27 5: [dsb] 2nd nonblocking HTTP Call starting for https://app.dsbcontrol.de/data/267b0371-9141-40db-9318-2b6b543f651d/8519ad0c-25d5-4643-946e-d65904ce5dcf/subst_001.htm
2020.03.02 08:22:27 5: [dsb] 2nd nonblocking HTTP Call returning
2020.03.02 08:22:27 5: [dsb] Received HTML:
body { margin-top: 0px; margin-left: 20px; margin-right: 20px;
background: #fff; color: #272727; font: 80% Arial, Helvetica, sans-serif; }
h1 { color: #ee7f00; font-size: 150%; font-weight: normal;}
h1 strong { font-size: 200%; font-weight: normal; }
h2 { font-size: 125%;}
h1, h2 { margin: 0; padding: 0;}
th { background: #000; color: #fff; }
table.mon_list th, td { padding: 8px 4px;}
.mon_title
{
font-weight: bold;
font-size: 120%;
clear: both;
margin: 0;
}
.inline_header
{
font-weight: bold;
}
table.info
{
color: #000000;
font-size: 100%;
border: 1px;
border-style:solid;
border-collapse:collapse;
padding: 8px 4px;
}
table.mon_list
{
color: #000000;
width: 100%;
font-size: 100%;
border: 1px;
border-style:solid;
border-collapse:collapse;
}
table.mon_head
{
color: #000000;
width: 100%;
font-size: 100%;
}
td.info,
th.list,
td.list,
tr.list
{
border: 1px;
border-style: solid;
border-color: black;
margin: 0px;
border-collapse:collapse;
padding: 3px;
}
tr.odd { background: #fad3a6; }
tr.even { background: #fdecd9; }
Untis 2020
L.-Uhland-Schule Heimsheim D-71296, Schulstr. 19-21
6. Plan 2019/2020 g�ltig ab 17.02.2020 Stand: 02.03.2020 07:28
2.3.2020 Montag
Nachrichten zum Tag
Porsche-Termin LUS 9a 1.Gruppe
Stunde Fach (Lehrer) Vertreter Raum Text Entfall
6b
3 M Fs HK 416
7a
2 D LH St 303
7d
5 Gk Fs Sz 306
6 --- Fs --- --- x
8b
1 Gk Fs St 208
2 G Fs Sz 208
3 - 4 M Fs BT 208
9a
1 - 2 BK Gt Gt 112
1 - 8 Bn Porsche
3 D KS KS 210
4 M HK HK 210
5 - 6 E JS JS 210
9b
1 D LH Sz 209
6 --- LH --- --- x
9c
3 D LH St 204
5 Bio LH RN 301
10c
3 EWG EK BF Sz 305
-----
2/3 BF St 9.20 Felsen Hof
6/7 Fs Br 13.05 Bus2
Periode5 (26) Zweites Schulhalbjahr_Februar 2020
Untis Stundenplan Software
2020.03.02 08:22:27 5: [dsb] processing page
2020.03.02 08:22:27 4: [dsb] Starting extraction mon_list
2020.03.02 08:22:27 4: [dsb] Starting extraction info
2020.03.02 08:22:27 5: [dsb] Found info of the Day: '
Nachrichten zum Tag
Porsche-Termin LUS 9a 1.Gruppe
'
2020.03.02 08:22:27 4: [dsb] Starting extraction mon_title
2020.03.02 08:22:27 5: [dsb] Processing line #0
2020.03.02 08:22:27 5: [dsb] Extracted Lines
2020.03.02 08:22:27 5: [dsb] 2nd nonblocking HTTP Call parse done
Zitat von: raiderxxl am 02 März 2020, 08:24:51
Hi,
gerade geladen FHEM neu gestartet... ändert aber nix
Bei mir war ja auch das Problem das es keine Zeile mit Klassen gab... da war ne extra Zeile dazwischen....
Dieses DSBMobile macht mich wahnsinnig... So viele Varianten ;)
Bei Ingo oben gab es auf der Startseite zwei (oder mehr) Unterseiten, je eine pro Tag. Bei dir gibt es auf der Startseite nur einen Link, innerhalb dessen aber zwei (oder mehr) Seiten... Daher ist die JSON-Struktur wieder anders. Dieser Fall ist nun aber auch abgedeckt.
Ich hoffe mal, dass nicht noch mehr Varianten auftauchen :D
Die neue Version ist angehängt und ich denke, ich werde sie dann auch einchecken, so dass sie mit dem regulären Update kommt.
Kurzer Testbericht: Bei der Schule meines Sohnes haben wir 3 Links mit jeweils mehreren Seiten.
In der letzten Version werden jetzt auch Daten aus den gut versteckten Seiten gefunden.
Was noch toll wäre, wäre zur Steigerung des WAF die Möglichkeit, in dsb_outputFormat Text und Variablen nur nach bestimmten Bedingungen anzuzeigen.
ZZt habe ich
%Klasse_n_%: %Stunde%. Stunde statt %Fach% bei %Lehrer% Vertretung durch %Vertreter% in Raum %Raum%. Text: %Information%/%Verlegung%
gesetzt, was dann zu solcher Ausgabe führt:
5C: 1. Stunde statt Deutsch bei PJU Vertretung durch GEI in Raum W203. Text: -/-
5C: 2. Stunde statt Deutsch bei PJU Vertretung durch GEI in Raum W203. Text: -/-
5C: 3. Stunde statt Englisch bei PJU Vertretung durch SEM in Raum S106. Text: -/-
11Q_5: 2. Stunde statt --- bei PJU Vertretung durch --- in Raum ---. Text: -/Entfall
11Q_5: 3 - 4. Stunde statt --- bei TCH Vertretung durch --- in Raum ---. Text: -/Entfall
Zitat von: frankreed am 24 Februar 2020, 11:41:27
Eine kleine Anregung für die einfache HTML-Ausgabe:
Könnte man die Überschriften, die ich mit mit dem Attribut "dsb_OutputFormat" festgelegt habe, als Überschrift bei den einzelnen Tagen noch mit anzeigen lassen?
Und die einzelnen Spalten mit einem Tab etwas mehr "auseinanderziehen"? Momentan ist alles sehr gedrängt.
Ich habe mir zwischenzeitlich geholfen mit einem Hilfsmodul:
https://github.com/klein0r/fhem-abstracttable (https://github.com/klein0r/fhem-abstracttable)
Damit habe ich mir "meine" HTML-Ausgabe zusammengebastelt. Mit dem Hilfsmodul kann man noch viel mehr anstellen, siehe Webseite.
Zitat von: frankreed am 04 März 2020, 07:58:47
Ich habe mir zwischenzeitlich geholfen mit einem Hilfsmodul:
https://github.com/klein0r/fhem-abstracttable (https://github.com/klein0r/fhem-abstracttable)
Damit habe ich mir "meine" HTML-Ausgabe zusammengebastelt. Mit dem Hilfsmodul kann man noch viel mehr anstellen, siehe Webseite.
kannte ich garnicht... sieht nicht uninteressant aus... Vielleicht magst du dein Beispiel ja hier im raw format posten, dass andere es übernehmen können.
Zitat von: pasp am 03 März 2020, 00:05:31
Kurzer Testbericht: Bei der Schule meines Sohnes haben wir 3 Links mit jeweils mehreren Seiten.
In der letzten Version werden jetzt auch Daten aus den gut versteckten Seiten gefunden.
Was noch toll wäre, wäre zur Steigerung des WAF die Möglichkeit, in dsb_outputFormat Text und Variablen nur nach bestimmten Bedingungen anzuzeigen.
Danke für den Testbericht :)
Wie stellst du dir die Bedingungen vor? Was ich mir vorstellen könnte, ist dem
dsb_outputFormat Perl beizubringen. Wäre das die richtige Richtung?
Zitat von: KernSani am 04 März 2020, 23:13:55
kannte ich garnicht... sieht nicht uninteressant aus... Vielleicht magst du dein Beispiel ja hier im raw format posten, dass andere es übernehmen können.
Mach' ich heute Abend.
Hi,
meines sieht so aus...
defmod dsb_ab abstracttable dsb
attr dsb_ab DbLogExclude .*
attr dsb_ab alias DSB Mobile
attr dsb_ab table-header Datum,Klasse,Stunde,Fach,Lehrer,Vertretung,Raum,Text,Entfällt
attr dsb_ab table-rowtemplate tt%d_sdate,tt%d_Klasse_n_,tt%d_Stunde,tt%d_Fach,tt%d__Lehrer_,tt%d_Vertreter,tt%d_Raum,tt%d_Text,tt%d_Entfall
attr dsb_ab table-startindex 0
hab nur noch ein Problem mit der Sortierung nach Datum... der Sortiert nach dem Index im Readingsnamen..
Grüßle
Pascal
Hallo,
tolles Modul. Ich hätte noch einen Wunsch. Bei uns sind Aushänge oft mehrseitig. Momentan bekomme ich nur die erste Seite. Gibt es da Möglichkeiten, was zu ändern?
Danke,
Thomas
Zitat von: tschaedl am 15 März 2020, 12:13:15
Hallo,
tolles Modul. Ich hätte noch einen Wunsch. Bei uns sind Aushänge oft mehrseitig. Momentan bekomme ich nur die erste Seite. Gibt es da Möglichkeiten, was zu ändern?
Danke,
Thomas
Hi Thomas,
zur Zeit ist das Modul (bzw. die App) vermutlich eher sinnlos :-S. Ich habe eine Vermutung, wie die Multipage-Aushänge funktionieren und habe das mal angepasst. Falls angehängte Version nicht funktioniert, kannst du mir deine Zugangsdaten per PN schicken?
Zitat von: KernSani am 20 März 2020, 00:41:25
Hi Thomas,
zur Zeit ist das Modul (bzw. die App) vermutlich eher sinnlos :-S. Ich habe eine Vermutung, wie die Multipage-Aushänge funktionieren und habe das mal angepasst. Falls angehängte Version nicht funktioniert, kannst du mir deine Zugangsdaten per PN schicken?
Hi,
wie du schon richtig sagst, zur Zeit kann man da wenig machen. Sobald wieder Normalität herrscht und es mehrseitige Aushänge gibt, probiere ich es aus und melde mich. Trotzdem schonmal ein grosses Dankeschön an dich.
Gruss Thomas
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
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....
gleiches Problem bei mir wie von raiderxxl beschrieben...nicht die ganze Kiste schmiert ab, sondern fhem stürzt ab und startet neu
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...
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...
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 :-(
Vielen Dank fürs dranbleiben. Wäre toll, wenn du das wieder hinbekommen könntest auch wenn der Hersteller not amused ist.
Gruss Thomas
Morgen,
habe auf der folgenden Seite etwas Interessanntes gefunden:
https://github.com/nerrixDE/DSBApi (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
Interessant... Muss ich mir mal im Detail anschauen. Danke für den Hinweis.
Kurz, weil mobil....
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
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
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
ok, habe es gelöst:
attr dsb password Grütze
Gruss
Enno
Edit: Login klappt aber leider nicht.
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_
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
Hallo zusammen,
auch wenn zur Zeit (zumindest bei uns) relativ wenig in DSBMobile los ist... ich bräuchte mal wieder Hilfe. Die API wurde mal wieder geändert und ich habe das so weit es ging gefixt. Allerdings habe ich ein Problem: Bei uns gibt es keine "News" mit denen ich testen könnte. Hat jemand von euch "News" in der App, wo es auch Content gibt?
Danke,
Oli
Hallo zusammen,
das DSB-Modul funktioniert top, vorallem die "dsb_web_table".
Nun würde ich aber gern diese "dsb_web_table" in der FTUI verwenden. Hab schon data-type "iframe", "link" und sonstwas ausprobiert, bekomme aber keine Ergebnisse in der FTUI angezeigt.
Hat jemand eine Idee mit welchem data-type man den DSB-Weblink "dsb_web_table" in die FTUi übergeben kann?
danke und schönen Abend noch
Adrian