69_Webuntis: Beta-Modul zum Auslesen von Webuntis Stundenplänen

Begonnen von KernSani, 26 Februar 2023, 23:52:38

Vorheriges Thema - Nächstes Thema

tobi01001

Hallo Christoph,

Zitat von: caldir65 am 24 November 2024, 11:48:282024.11.24 11:43:54.117 4: getTT received {"jsonrpc":"2.0","id":"FHEM","error":{"message":"no such element elementId:1261, elementType:5","code":-7002}}
2024.11.24 11:43:54.117 1: [Webuntis_Joschua] no such element elementId:1261, elementType:5
Du bist mit dem Eltern Log-In angemeldet, das Modul fragt aber einen Schülerkalender ab (elementType 5). Um das zu tun, braucht der Elternzugang Zugriff auf den gewünschten Schülerkalenderund die korrekte studentID muss eingetragen sein. Das kann ich aus dem Log nicht erkennen.
Lösch mal bitte die Attribute timeTableMode und studentID (timetableMode auf class setzen sollte auch genügen).
Im Attribut "class" muss der Text/Name der korrekten Klasse angegeben sein - gemäß der Zuordnungstabelle (könnte man mal ein Dropdown machen).
Ansonsten gern mal ein list des Device...

Gruß,
Tobias
FHEM@UbuntuServer on Lenovo ThinkCentre M900 [i5-6500T / 8GB RAM] MySQL-DbLog, Grafana, FTUI3 / HmIP incl. CCU3 / LGESS / Wärempumpe über TA CMI und CANoE / Shellies u.v.m.

caldir65

Moin,

ich habe mal TimetableMode und StudentID gelöscht.

2024.11.25 21:24:28.718 4: password Keystore handle for Device (Webuntis_Joxxxxx) - Read password from file
2024.11.25 21:24:28.720 4: [Webuntis_Joxxxxx] Processing Queue: login
2024.11.25 21:24:28.721 4: password Keystore handle for Device (Webuntis_Joxxxxx) - Read password from file
2024.11.25 21:24:28.975 4: Webuntis_Joxxxxx: GetCookies parsed Cookie: JSESSIONID Wert FC44B4EE9CEB3692D47C75575D8D6675 Rest Path=/WebUntis; Secure; HttpOnly; SameSite=None
2024.11.25 21:24:28.975 4: Webuntis_Joxxxxx: GetCookies parsed Cookie: schoolname Wert "_aWdzIG1lbGxl" Rest Expires=Mon, 09 Dec 2024 20:24:28 GMT; Secure; SameSite=None
2024.11.25 21:24:28.976 4: Webuntis_Joxxxxx: GetCookies parsed Cookie: Tenant-Id Wert "6513800" Rest Expires=Mon, 09 Dec 2024 20:24:28 GMT; Secure; SameSite=None
2024.11.25 21:24:28.976 4: login received {"jsonrpc":"2.0","id":"FHEM","result":{"sessionId":"FC44BCEB375575D8D6675","personType":12,"personId":5188,"klasseId":0}}
2024.11.25 21:24:28.976 4: [Webuntis_Joxxxxx] Processing Queue: getTT
2024.11.25 21:24:28.977 3: getTT sends{"jsonrpc":"2.0","params":[{"teacherFields":["id","name","longname","externalkey"],"element":{"id":null,"type":1},"klasseFields":["id","name","longname","externalkey"],"subjectFields":["id","name","longname","externalkey"],"endDate":"20241209","showLsNumber":true,"showStudentgroup":true,"showBooking":true,"startDate":"20241125","showLsText":true,"showSubstText":true,"showInfo":true,"roomFields":["id","name","longname","externalkey"]}],"method":"getTimetable","id":"FHEM"} to https://aoide.webuntis.com/WebUntis/jsonrpc.do?school=IGS%20Melle
2024.11.25 21:24:29.358 4: getTT received {"jsonrpc":"2.0","id":"FHEM","error":{"message":"no such element elementId:null, elementType:1","code":-7002}}
2024.11.25 21:24:29.358 1: [Webuntis_Joxxxxx] no such element elementId:null, elementType:1

Und noch der List:Internals:
   FUUID      6740cae8-f33f-378b-fb4a-44e39dda23ff7b62
   NAME       Webuntis_Joxxxxx
   NR         1726
   NTFY_ORDER 50-Webuntis_Joxxxxx
   PERSONID   5188
   PERSONTYPE Eltern (12)
   STATE      ???
   TYPE       Webuntis
   VERSION    0.2.01
   eventCount 57
   HTTPCookieHash:
     JSESSIONID;:
       Name       JSESSIONID
       Options    Path=/WebUntis; Secure; HttpOnly; SameSite=None
       Path       
       Value      FC44BCEB375575D8D6675
     Tenant-Id;:
       Name       Tenant-Id
       Options    Expires=Mon, 09 Dec 2024 20:24:28 GMT; Secure; SameSite=None
       Path       
       Value      "6513800"
     schoolname;:
       Name       schoolname
       Options    Expires=Mon, 09 Dec 2024 20:24:28 GMT; Secure; SameSite=None
       Path       
       Value      "xxxxxxxxxxxx"
   READINGS:
     2024-11-25 21:24:29   error           no such element elementId:null, elementType:1
   helper:
     classes    <html><table><tr><td>1231</td><td>-</td><td>-</td></tr><tr><td>1234</td><td>--</td><td>--</td></tr><tr><td>1237</td><td>5a</td><td>5a</td></tr><tr><td>1240</td><td>5b</td><td>5b</td></tr><tr><td>1243</td><td>5c</td><td>5c</td></tr><tr><td>1246</td><td>5d</td><td>5d</td></tr><tr><td>1249</td><td>5e</td><td>5e</td></tr><tr><td>1252</td><td>6a</td><td>6a</td></tr><tr><td>1255</td><td>6b</td><td>6b</td></tr><tr><td>1258</td><td>6c</td><td>6c</td></tr><tr><td>1261</td><td>6d</td><td>6d</td></tr><tr><td>1264</td><td>6e</td><td>6e</td></tr><tr><td>1267</td><td>7a</td><td>7a</td></tr><tr><td>1270</td><td>7b</td><td>7b</td></tr><tr><td>1273</td><td>7c</td><td>7c</td></tr><tr><td>1276</td><td>7d</td><td>7d</td></tr><tr><td>1279</td><td>7e</td><td>7e</td></tr><tr><td>1282</td><td>8a</td><td>8a</td></tr><tr><td>1285</td><td>8b</td><td>8b</td></tr><tr><td>1288</td><td>8c</td><td>8c</td></tr><tr><td>1291</td><td>8d</td><td>8d</td></tr><tr><td>1294</td><td>8e</td><td>8e</td></tr><tr><td>1297</td><td>9a</td><td>9a</td></tr><tr><td>1300</td><td>9b</td><td>9b</td></tr><tr><td>1303</td><td>9c</td><td>9c</td></tr><tr><td>1306</td><td>9d</td><td>9d</td></tr><tr><td>1309</td><td>9e</td><td>9e</td></tr><tr><td>1312</td><td>10a</td><td>10a</td></tr><tr><td>1315</td><td>10b</td><td>10b</td></tr><tr><td>1318</td><td>10c</td><td>10c</td></tr><tr><td>1321</td><td>10d</td><td>10d</td></tr><tr><td>1324</td><td>10e</td><td>10e</td></tr><tr><td>1327</td><td>11a</td><td>11a</td></tr><tr><td>1330</td><td>11b</td><td>11b</td></tr><tr><td>1333</td><td>11c</td><td>11c</td></tr><tr><td>1336</td><td>11d</td><td>11d</td></tr><tr><td>1339</td><td>12</td><td>Jahrgang 12</td></tr><tr><td>1342</td><td>13</td><td>Jahrgang 13</td></tr><tr><td>1345</td><td>Berat</td><td>Beratung</td></tr><tr><td>1348</td><td>Bespr</td><td>Besprechung</td></tr><tr><td>1351</td><td>CamZert</td><td>Cambridge Zertifikat</td></tr><tr><td>1354</td><td>CosRic</td><td>Costa Rica AG</td></tr><tr><td>1357</td><td>För</td><td>Förderunterricht</td></tr><tr><td>1360</td><td>JG 5</td><td>Jahrgang 5</td></tr><tr><td>1363</td><td>JG 6</td><td>Jahrgang 6</td></tr><tr><td>1366</td><td>JG 7</td><td>Jahrgang 7</td></tr><tr><td>1369</td><td>JG 8</td><td>Jahrgang 8</td></tr><tr><td>1372</td><td>JG 9</td><td>Jahrgang 9</td></tr><tr><td>1375</td><td>KollSchul</td><td>Kollegiale Schulleitung</td></tr><tr><td>1378</td><td>Ref</td><td>Referendare Betreuung</td></tr><tr><td>1381</td><td>Samm</td><td>Sammlung</td></tr><tr><td>1384</td><td>SchulL</td><td>Schulleitung</td></tr><tr><td>1387</td><td>United Nation</td><td>United Nation</td></tr><tr><td>1390</td><td>JG 10</td><td>Jahrgang 10</td></tr><tr><td>1393</td><td>Betr</td><td>Betreuung</td></tr><tr><td>1396</td><td>IPad</td><td>IPad</td></tr><tr><td>1399</td><td>Islam</td><td>Islamunterricht</td></tr><tr><td>1402</td><td>Sozial</td><td>Sozialtraining</td></tr><tr><td>1405</td><td>JGL SL</td><td>JGL SL DB</td></tr><tr><td>1408</td><td>FBL SL DB</td><td>FBL SL DB</td></tr><tr><td>1410</td><td>Perso</td><td>Perso</td></tr></table></html>
     cookies    JSESSIONID=FC44B4EE9CEB3692D47C75575D8D6675; Tenant-Id="6513800"; schoolname="_aWdzIG1lbGxl"
     classIdMap:
       1231       -
       1234       --
       1237       5a
       1240       5b
       1243       5c
       1246       5d
       1249       5e
       1252       6a
       1255       6b
       1258       6c
       1261       6d
       1264       6e
       1267       7a
       1270       7b
       1273       7c
       1276       7d
       1279       7e
       1282       8a
       1285       8b
       1288       8c
       1291       8d
       1294       8e
       1297       9a
       1300       9b
       1303       9c
       1306       9d
       1309       9e
       1312       10a
       1315       10b
       1318       10c
       1321       10d
       1324       10e
       1327       11a
       1330       11b
       1333       11c
       1336       11d
       1339       12
       1342       13
       1345       Berat
       1348       Bespr
       1351       CamZert
       1354       CosRic
       1357       För
       1360       JG 5
       1363       JG 6
       1366       JG 7
       1369       JG 8
       1372       JG 9
       1375       KollSchul
       1378       Ref
       1381       Samm
       1384       SchulL
       1387       United Nation
       1390       JG 10
       1393       Betr
       1396       IPad
       1399       Islam
       1402       Sozial
       1405       JGL SL
       1408       FBL SL DB
       1410       Perso
     classMap:
       -          1231
       --         1234
       10a        1312
       10b        1315
       10c        1318
       10d        1321
       10e        1324
       11a        1327
       11b        1330
       11c        1333
       11d        1336
       12         1339
       13         1342
       5a         1237
       5b         1240
       5c         1243
       5d         1246
       5e         1249
       6a         1252
       6b         1255
       6c         1258
       6d         1261
       6e         1264
       7a         1267
       7b         1270
       7c         1273
       7d         1276
       7e         1279
       8a         1282
       8b         1285
       8c         1288
       8d         1291
       8e         1294
       9a         1297
       9b         1300
       9c         1303
       9d         1306
       9e         1309
       Berat      1345
       Bespr      1348
       Betr       1393
       CamZert    1351
       CosRic     1354
       FBL SL DB  1408
       För       1357
       IPad       1396
       Islam      1399
       JG 10      1390
       JG 5       1360
       JG 6       1363
       JG 7       1366
       JG 8       1369
       JG 9       1372
       JGL SL     1405
       KollSchul  1375
       Perso      1410
       Ref        1378
       Samm       1381
       SchulL     1384
       Sozial     1402
       United Nation 1387
   hmccu:
Attributes:
   DaysTimetable 14
   DbLogExclude .*
   class      12616d
   exceptionIndicator code,info,lstext,lstype,substText
   group      Kalender
   iCalPath   ./igs_melle.ical
   school     IGS%20Melle
   server     https://aoide.webuntis.com
   user       xxxx.xxxx@igsmelle.net
   verbose    5
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 128GB SSD, Lubuntu 24.04.01LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

tobi01001

Prima. Im Attribut class steht bei dir 12616d.

Trag mal bitte nur 6d ein:
attr Webuntis_Joxxxxx class 6d
Das sollte funktionieren. Und wenn mir mal etwas langweilig ist, bau ich wirklich mal ein dropdown ein.
FHEM@UbuntuServer on Lenovo ThinkCentre M900 [i5-6500T / 8GB RAM] MySQL-DbLog, Grafana, FTUI3 / HmIP incl. CCU3 / LGESS / Wärempumpe über TA CMI und CANoE / Shellies u.v.m.

caldir65

Moin,

ja, danke, so funktioniert es, es kommt ein Kalender an. Mal sehen, was die Schule da geliefert hat ;-)

Gruß
Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 128GB SSD, Lubuntu 24.04.01LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

Sailor

Moin zusammen

Ich habe ebenfalls umgestellt und stelle jetzt fest, dass nur der aktive Tag aber nicht mehr die vergangenen Tage der aktiven Woche heruntergeladen werden.
Soll heissen: Am Mittwoch sind Dienstag und Montag bereits verschwunden.

Habe ich da irgendetwas falsch eingestellt?

Gruß
    Sailor
******************************
Man wird immer besser...

tobi01001

Zitat von: Sailor am 26 November 2024, 18:08:29Moin zusammen

Ich habe ebenfalls umgestellt und stelle jetzt fest, dass nur der aktive Tag aber nicht mehr die vergangenen Tage der aktiven Woche heruntergeladen werden.
Soll heissen: Am Mittwoch sind Dienstag und Montag bereits verschwunden.

Habe ich da irgendetwas falsch eingestellt?

Gruß
    Sailor

Daran habe ich nichts geändert. Das Startdatum bei der Abfrage ist der aktuelle Tag. Das Enddatum ist 7 Tage in der Zukunft (oder was im Attribut DaysTimetable gesetzt ist). Man könnte einbauen, dass man immer Montags startet. Aber was interessiert die Vergangenheit?
Ich bin mir zudem ziemlich sicher, dass das schon immer so war.

Im Anhang ist noch eine Version in der die Auswahl der Klassen über Dropdown erfolgt. Sprich: Nachdem man mit retrieveClasses die verfügbaren Klassen eingelesen hat, kann man sie per Dropdown im Attribut class auswählen.

ZitatSoll heissen: Am Mittwoch sind Dienstag und Montag bereits verschwunden.
Das ist doch toll! Wer will schon Montag un Dienstag bbis zum Wochenende aufheben. Schlimm genug, dass die überhaupt immer auftauchen.  ;D

LG und schönen Abend
FHEM@UbuntuServer on Lenovo ThinkCentre M900 [i5-6500T / 8GB RAM] MySQL-DbLog, Grafana, FTUI3 / HmIP incl. CCU3 / LGESS / Wärempumpe über TA CMI und CANoE / Shellies u.v.m.

Sailor

#81
Moin tobi

Zitat von: tobi01001 am 26 November 2024, 20:57:59Man könnte einbauen, dass man immer Montags startet.

Erledigt!
Habe ein Attribut "StartTimeTable" eingebaut

Gruss
    Sailor
******************************
Man wird immer besser...

kermitthefrog

Moin.

Bei der Schule meiner Söhne gibt es leider keine User - zumindest ist uns keiner bekannt. Wenn man die Schule auswählt auf Webuntis bzw. via der App, dann nutzen wir den Service "anonym". Wie bekomme ich das über das Modul realisiert?

Danke und Gruß!

tobi01001

Zitat von: kermitthefrog am 29 November 2024, 12:58:12Moin.

Bei der Schule meiner Söhne gibt es leider keine User - zumindest ist uns keiner bekannt. Wenn man die Schule auswählt auf Webuntis bzw. via der App, dann nutzen wir den Service "anonym". Wie bekomme ich das über das Modul realisiert?

Danke und Gruß!

Das ist Modul ist aktuell nicht dafür ausgelegt ohne Anmeldung zu arbeiten.

Ich habe mir mal eine Schule gesucht, die den Stundenplan anonym ausgibt. Folgender JsonMod ergibt dir den Stundenplan der Klasse 6A am Goethe-Gymnasium 5824 in Hamburg (über den Entwicklermodus kam ich nach Auswahl der Klasse an die URL, welche nach Ergänzung der Schule direkt JSON zurückliefert):
defmod WebuntisTest JsonMod https://ikarus.webuntis.com/WebUntis/api/public/timetable/weekly/data?elementType=1&elementId=1037&date=2024-12-03&formatId=5&school=hh5824
attr WebuntisTest readingList complete();;

Damit könntest du dir einen Stundenplan erstellen oder auch nur auf Vertretungen / Ausfälle reagieren (gibt es in der Klasse / Schule offenbar nicht)...

LG
FHEM@UbuntuServer on Lenovo ThinkCentre M900 [i5-6500T / 8GB RAM] MySQL-DbLog, Grafana, FTUI3 / HmIP incl. CCU3 / LGESS / Wärempumpe über TA CMI und CANoE / Shellies u.v.m.

caldir65

Moin,

kann ich eine Vertretung oder Ausfälle irgendwie direkt bekommen? Aus der ical geht es anscheinend nur indirekt hervor... in der AndroidApp werden solche Änderungen ja auch direkt angezeigt, insbesondere Ausfälle wären interessant.

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 128GB SSD, Lubuntu 24.04.01LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

tobi01001

Moin,

das bekommst du doch unabhängig der iCal direkt im Device? Das war ja auch die ursprüngliche Intention von KernSani für das Modul...

Ich habe über das Attribut attr webuntis exceptionIndicator code,info,lstext,lstype,substText Readings wie e_01        date="20241212" startTime="1215" endTime="1300" code="cancelled" activityType="Unterricht" ro:longname="B1.15 (14)" ro:name="B1.15 (14)" su:longname="Wirtschaft und Recht" su:name="WR"
Diese packe ich mittels Notify und einer myUtils-Funkiton in Readings die sich wie bei einem Kalender-device lesen (damit ich meine ftui3 templates direkt verwenden kann).

#     2024-12-09 07:15:02   e__Count        2
#     2024-12-09 07:16:01   e__Count_Tot    6
#     2024-12-09 07:15:02   t_001_activityType Unterricht
#     2024-12-09 07:15:02   t_001_code      Entfall
#     2024-12-09 07:15:02   t_001_date      12.12.2024
#     2024-12-09 07:15:02   t_001_daysleft  3
#     2024-12-09 07:15:02   t_001_endTime   13:00
#     2024-12-09 07:15:02   t_001_ro_longname B1.15 (14)
#     2024-12-09 07:15:02   t_001_ro_name   B1.15 (14)
#     2024-12-09 07:15:02   t_001_startTime 12:15
#     2024-12-09 07:15:02   t_001_su_longname Wirtschaft und Recht
#     2024-12-09 07:15:02   t_001_su_name   WR

LG
FHEM@UbuntuServer on Lenovo ThinkCentre M900 [i5-6500T / 8GB RAM] MySQL-DbLog, Grafana, FTUI3 / HmIP incl. CCU3 / LGESS / Wärempumpe über TA CMI und CANoE / Shellies u.v.m.