Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. TESTER: Neuer Adapter Webuntis

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

TESTER: Neuer Adapter Webuntis

Geplant Angeheftet Gesperrt Verschoben Tester
192 Beiträge 48 Kommentatoren 37.1k Aufrufe 42 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    Seamen
    schrieb am zuletzt editiert von
    #13

    Sehr gute idee! werde ich mir definitiv anschauen!

    1 Antwort Letzte Antwort
    0
    • NewanN Newan

      @oxident Super Ideen, schaue ich mir die Tage gerne an. Das mit dem "code" hab ich noch gar nicht gesehen. Wenn ihr sowas habt. Würde ich über den Debug-Log freuen damit ich das Json mal analysieren kann.

      O Offline
      O Offline
      oxident
      schrieb am zuletzt editiert von
      #14

      @newan Gesagt, getan. Musste ja nicht lange auf den nächsten Ausfall warten 😉

      [
      	{
      		"id": 123,
      		"date": 20220126,
      		"startTime": 1120,
      		"endTime": 1240,
      		"code": "irregular",
      		"kl": [
      			{
      				"id": 123,
      				"name": "7e",
      				"longname": "LEHRER"
      			}
      		],
      		"te": [
      			{
      				"id": 123,
      				"name": "XXX",
      				"longname": "LEHRER"
      			}
      		],
      		"su": [
      			{
      				"id": 123,
      				"name": "En",
      				"longname": "Englisch"
      			}
      		],
      		"ro": [
      			{
      				"id": 123,
      				"name": "E1.02",
      				"longname": "Klassenraum XX",
      				"orgid": 99,
      				"orgname": "TU3"
      			}
      		],
      		"lsnumber": 123,
      		"sg": "Sp_7e"
      	},
      	{
      		"id": 123,
      		"date": 20220126,
      		"startTime": 1120,
      		"endTime": 1240,
      		"code": "cancelled",
      		"kl": [
      			{
      				"id": 123,
      				"name": "7e",
      				"longname": "LEHRER"
      			}
      		],
      		"te": [
      			{
      				"id": 123,
      				"name": "XXX",
      				"longname": "LEHRER"
      			}
      		],
      		"su": [
      			{
      				"id": 123,
      				"name": "Sp",
      				"longname": "Sport"
      			}
      		],
      		"ro": [
      			{
      				"id": 123,
      				"name": "TU3",
      				"longname": "Turnhalle 3"
      			}
      		],
      		"lsnumber": 123,
      		"sg": "Sp_7e",
      		"activityType": "Unterricht"
      	},
      	{
      		"id": 123,
      		"date": 20220126,
      		"startTime": 1340,
      		"endTime": 1500,
      		"kl": [
      			{
      				"id": 123,
      				"name": "7e",
      				"longname": "LEHRER"
      			}
      		],
      		"te": [
      			{
      				"id": 123,
      				"name": "LEHRER",
      				"longname": "LEHRER",
      				"orgid": 123,
      				"orgname": "VOIM"
      			}
      		],
      		"su": [
      			{
      				"id": 123,
      				"name": "LeZ",
      				"longname": "Lernzeit"
      			}
      		],
      		"ro": [
      			{
      				"id": 123,
      				"name": "XXX",
      				"longname": "Klassenraum 7e"
      			}
      		],
      		"lsnumber": 123,
      		"sg": "LeZ_7e",
      		"activityType": "Unterricht"
      	},
      	{
      		"id": 123,
      		"date": 20220126,
      		"startTime": 800,
      		"endTime": 920,
      		"code": "cancelled",
      		"kl": [
      			{
      				"id": 123,
      				"name": "7d",
      				"longname": "LEHRER"
      			},
      			{
      				"id": 356,
      				"name": "7e",
      				"longname": "LEHRER"
      			},
      			{
      				"id": 361,
      				"name": "7f",
      				"longname": "LEHRER"
      			}
      		],
      		"te": [
      			{
      				"id": 123,
      				"name": "LEHRER",
      				"longname": "LEHRER"
      			}
      		],
      		"su": [
      			{
      				"id": 123,
      				"name": "Reli",
      				"longname": "Religion"
      			}
      		],
      		"ro": [
      			{
      				"id": 123,
      				"name": "XXX",
      				"longname": "Klassenraum 10a"
      			}
      		],
      		"lsnumber": 123,
      		"sg": "Reli_123",
      		"activityType": "Unterricht"
      	},
      	{
      		"id": 123,
      		"date": 20220126,
      		"startTime": 945,
      		"endTime": 1105,
      		"kl": [
      			{
      				"id": 123,
      				"name": "7e",
      				"longname": "LEHRER"
      			}
      		],
      		"te": [
      			{
      				"id": 123,
      				"name": "LEHRER",
      				"longname": "LEHRER"
      			},
      			{
      				"id": 123,
      				"name": "LEHRER",
      				"longname": "LEHRER",
      				"orgid": 123,
      				"orgname": "VOIM"
      			}
      		],
      		"su": [
      			{
      				"id": 123,
      				"name": "LeZ Klassenrat",
      				"longname": "Lernzeit Klassenrat"
      			}
      		],
      		"ro": [
      			{
      				"id": 123,
      				"name": "XXX",
      				"longname": "Klassenraum 7e"
      			}
      		],
      		"lsnumber": 123,
      		"sg": "LeZKlassenrat_7e",
      		"activityType": "Unterricht"
      	}
      ]
      

      Ich denke mal, die generelle Struktur kennst Du ja sicherlich 😉
      Interessant ist an dieser Stelle, dass zwei Stunden ausfallen ("code": "cancelled") und eine Stunde Vertretung ist (vermute ich mal) -> "code": "irregular".

      NewanN 1 Antwort Letzte Antwort
      0
      • O oxident

        @newan Gesagt, getan. Musste ja nicht lange auf den nächsten Ausfall warten 😉

        [
        	{
        		"id": 123,
        		"date": 20220126,
        		"startTime": 1120,
        		"endTime": 1240,
        		"code": "irregular",
        		"kl": [
        			{
        				"id": 123,
        				"name": "7e",
        				"longname": "LEHRER"
        			}
        		],
        		"te": [
        			{
        				"id": 123,
        				"name": "XXX",
        				"longname": "LEHRER"
        			}
        		],
        		"su": [
        			{
        				"id": 123,
        				"name": "En",
        				"longname": "Englisch"
        			}
        		],
        		"ro": [
        			{
        				"id": 123,
        				"name": "E1.02",
        				"longname": "Klassenraum XX",
        				"orgid": 99,
        				"orgname": "TU3"
        			}
        		],
        		"lsnumber": 123,
        		"sg": "Sp_7e"
        	},
        	{
        		"id": 123,
        		"date": 20220126,
        		"startTime": 1120,
        		"endTime": 1240,
        		"code": "cancelled",
        		"kl": [
        			{
        				"id": 123,
        				"name": "7e",
        				"longname": "LEHRER"
        			}
        		],
        		"te": [
        			{
        				"id": 123,
        				"name": "XXX",
        				"longname": "LEHRER"
        			}
        		],
        		"su": [
        			{
        				"id": 123,
        				"name": "Sp",
        				"longname": "Sport"
        			}
        		],
        		"ro": [
        			{
        				"id": 123,
        				"name": "TU3",
        				"longname": "Turnhalle 3"
        			}
        		],
        		"lsnumber": 123,
        		"sg": "Sp_7e",
        		"activityType": "Unterricht"
        	},
        	{
        		"id": 123,
        		"date": 20220126,
        		"startTime": 1340,
        		"endTime": 1500,
        		"kl": [
        			{
        				"id": 123,
        				"name": "7e",
        				"longname": "LEHRER"
        			}
        		],
        		"te": [
        			{
        				"id": 123,
        				"name": "LEHRER",
        				"longname": "LEHRER",
        				"orgid": 123,
        				"orgname": "VOIM"
        			}
        		],
        		"su": [
        			{
        				"id": 123,
        				"name": "LeZ",
        				"longname": "Lernzeit"
        			}
        		],
        		"ro": [
        			{
        				"id": 123,
        				"name": "XXX",
        				"longname": "Klassenraum 7e"
        			}
        		],
        		"lsnumber": 123,
        		"sg": "LeZ_7e",
        		"activityType": "Unterricht"
        	},
        	{
        		"id": 123,
        		"date": 20220126,
        		"startTime": 800,
        		"endTime": 920,
        		"code": "cancelled",
        		"kl": [
        			{
        				"id": 123,
        				"name": "7d",
        				"longname": "LEHRER"
        			},
        			{
        				"id": 356,
        				"name": "7e",
        				"longname": "LEHRER"
        			},
        			{
        				"id": 361,
        				"name": "7f",
        				"longname": "LEHRER"
        			}
        		],
        		"te": [
        			{
        				"id": 123,
        				"name": "LEHRER",
        				"longname": "LEHRER"
        			}
        		],
        		"su": [
        			{
        				"id": 123,
        				"name": "Reli",
        				"longname": "Religion"
        			}
        		],
        		"ro": [
        			{
        				"id": 123,
        				"name": "XXX",
        				"longname": "Klassenraum 10a"
        			}
        		],
        		"lsnumber": 123,
        		"sg": "Reli_123",
        		"activityType": "Unterricht"
        	},
        	{
        		"id": 123,
        		"date": 20220126,
        		"startTime": 945,
        		"endTime": 1105,
        		"kl": [
        			{
        				"id": 123,
        				"name": "7e",
        				"longname": "LEHRER"
        			}
        		],
        		"te": [
        			{
        				"id": 123,
        				"name": "LEHRER",
        				"longname": "LEHRER"
        			},
        			{
        				"id": 123,
        				"name": "LEHRER",
        				"longname": "LEHRER",
        				"orgid": 123,
        				"orgname": "VOIM"
        			}
        		],
        		"su": [
        			{
        				"id": 123,
        				"name": "LeZ Klassenrat",
        				"longname": "Lernzeit Klassenrat"
        			}
        		],
        		"ro": [
        			{
        				"id": 123,
        				"name": "XXX",
        				"longname": "Klassenraum 7e"
        			}
        		],
        		"lsnumber": 123,
        		"sg": "LeZKlassenrat_7e",
        		"activityType": "Unterricht"
        	}
        ]
        

        Ich denke mal, die generelle Struktur kennst Du ja sicherlich 😉
        Interessant ist an dieser Stelle, dass zwei Stunden ausfallen ("code": "cancelled") und eine Stunde Vertretung ist (vermute ich mal) -> "code": "irregular".

        NewanN Offline
        NewanN Offline
        Newan
        schrieb am zuletzt editiert von
        #15

        @oxident Mega!
        Ja das bauen wir ein. "irregular" ist schon amüsant.

        1 Antwort Letzte Antwort
        0
        • NewanN Offline
          NewanN Offline
          Newan
          schrieb am zuletzt editiert von
          #16

          @ldittmar sagte in TESTER: Neuer Adapter Webuntis:

          Das sollte ggf. in die Konfig-Seite rein.

          -> Done, habe einen Link zur späteren Anleitung eingebunden. Muss nur einer ne Anleitung schreiben. AM besten per md-Datei auf github im Repo.

          @oxident:

          Vielleicht könnte man alles nach aktuellem Tag und den Folgetag gliedern. Also quasi als oberste Ebene der DP "current" und "1d" oder "nextday" verwenden. Schwierig wird da ggf. noch das Handling von Wochenenden und Ferien.

          Folgende Logik ist aktiv: Wenn die Funktion getOwnTimetableForToday null zurückgibt, gehe ich von Wochenende aus. Dann wird nextBusinessDay gesucht und dann abgefragt. Wenn dann auch leer ist Ferien und die Datenpunkte bleiben leer bzw. werden entfernt.
          -> wäre das für die Anleitung
          Habe jetzt einfch 0 und 1 gemacht als Index. Problem ist das ja wie oben nicht immer current zieht und mir keine passende Namen eingefallen sind. Es wird aber das ausgelesene Datum angegeben.

          Parallel dazu könnte man so auch Vertretungsunterricht (oder Distanzlernen) abfangen. Die entsprechenden "codes" kenne ich zwar nicht, aber man könnte generell, wenn bei einer Schulstunde ein "code" <> "cancelled" vorhanden ist einen Zähler (z. B. "exceptions") inkrementieren. Dann weiß man, dass an diesem Tag irgendwas "komisch" ist 😉

          Das ist wie folgt gelöst. In der Stunde wird angezeigt ob "Vertretung" oder ausfällt. AM tag wir mit exception angezeigt ob was komisch oder nicht ist. Schaut mal ob das so nutzbar und praktikabel ist. Auch hier wäre ein Eintrag in der Anleitung hilfreich

          1 Antwort Letzte Antwort
          0
          • NewanN Offline
            NewanN Offline
            Newan
            schrieb am zuletzt editiert von
            #17

            Update online, happy testing

            E 1 Antwort Letzte Antwort
            0
            • NewanN Newan

              Update online, happy testing

              E Offline
              E Offline
              elektrickser.de
              schrieb am zuletzt editiert von
              #18

              @newan ich hab gesteren nen Fork gezogen und mit der Readme für Github begonnen.

              Sollte ich diese auf English machen oder in Deutsch halten?

              Ich bin noch neu mit VScode und Git und deswegen klappts mit dem Pullrequest noch nicht so. eventuell schiebe ich dir die dann per Github hoch.

              NewanN E 2 Antworten Letzte Antwort
              0
              • E elektrickser.de

                @newan ich hab gesteren nen Fork gezogen und mit der Readme für Github begonnen.

                Sollte ich diese auf English machen oder in Deutsch halten?

                Ich bin noch neu mit VScode und Git und deswegen klappts mit dem Pullrequest noch nicht so. eventuell schiebe ich dir die dann per Github hoch.

                NewanN Offline
                NewanN Offline
                Newan
                schrieb am zuletzt editiert von
                #19

                @elektrickser-de Am besten beides 🙂

                Pull ist denkbar einfach. In deinem Fork einfach nen commit machen und dann in github auf der Webseite einen PR stellen, Rest geht vom system quasi alleine.

                1 Antwort Letzte Antwort
                0
                • E elektrickser.de

                  @newan ich hab gesteren nen Fork gezogen und mit der Readme für Github begonnen.

                  Sollte ich diese auf English machen oder in Deutsch halten?

                  Ich bin noch neu mit VScode und Git und deswegen klappts mit dem Pullrequest noch nicht so. eventuell schiebe ich dir die dann per Github hoch.

                  E Offline
                  E Offline
                  elektrickser.de
                  schrieb am zuletzt editiert von
                  #20

                  @Newan

                  ich finde jetzt erstmal diesen Request interesant:

                  (async) getTimetableForRange(rangeStart, rangeEnd, id, type, validateSessionopt) → {Promise.<Array>}
                  
                  Get the timetable for a given Date range for specific element
                  
                  E 1 Antwort Letzte Antwort
                  0
                  • E elektrickser.de

                    @Newan

                    ich finde jetzt erstmal diesen Request interesant:

                    (async) getTimetableForRange(rangeStart, rangeEnd, id, type, validateSessionopt) → {Promise.<Array>}
                    
                    Get the timetable for a given Date range for specific element
                    
                    E Offline
                    E Offline
                    elektrickser.de
                    schrieb am zuletzt editiert von
                    #21

                    @Newan

                    weitere interesannte Abfragen:

                    Hausaufgaben:

                    
                    (async) getHomeWorksFor(rangeStart, rangeEnd, validateSessionopt) → {Promise.<Array>}
                    
                    Source:
                    
                            index.js, line 383 
                    
                    Parameters:
                    Name 	Type 	Attributes 	Default 	Description
                    rangeStart 	Date 			
                    rangeEnd 	Date 			
                    validateSession 	boolean 	<optional>
                    	true 	
                    Returns:
                    
                    Type:
                        Promise.<Array> 
                    
                    
                    

                    Stundenplan für einen Datumbereich, z.b. immer für die aktuelle Woche oder immer für die nächsten 7 Tage

                    
                    (async) getOwnTimetableForRange(rangeStart, rangeEnd, validateSessionopt) → {Promise.<Array>}
                    
                    Get your own timetable for a given Date range Note: You can't use this with anonymous login
                    
                    Source:
                    
                            index.js, line 316 
                    
                    Parameters:
                    Name 	Type 	Attributes 	Default 	Description
                    rangeStart 	Date 			
                    rangeEnd 	Date 			
                    validateSession 	Boolean 	<optional>
                    	true 	
                    Returns:
                    
                    Type:
                        Promise.<Array> 
                    
                    
                    
                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      Seamen
                      schrieb am zuletzt editiert von
                      #22

                      Hi,
                      ich habe den Adapter zum testen installiert. Leider bekomme ich immer folgende Fehlermeldung:

                      webuntis.0	2022-01-26 13:23:24.768	error	Login WebUntis failed
                      webuntis.0	2022-01-26 13:23:24.767	error	Error: Failed to login. {"jsonrpc":"2.0","id":"error","error":{"message":"invalid schoolname","code":-8500}}
                      

                      Die Schule heißt Gymnasium+Loxstedt, dies habe ich in der config bei "School secret" eingetragen. Ist das so korrekt?

                      Gruß
                      Malte

                      A 1 Antwort Letzte Antwort
                      0
                      • NewanN Offline
                        NewanN Offline
                        Newan
                        schrieb am zuletzt editiert von
                        #23

                        @seamen

                        school: Gymnasium+Loxstedt
                        baseUrl: kephiso.webuntis.com

                        S O 2 Antworten Letzte Antwort
                        0
                        • NewanN Newan

                          @seamen

                          school: Gymnasium+Loxstedt
                          baseUrl: kephiso.webuntis.com

                          S Offline
                          S Offline
                          Seamen
                          schrieb am zuletzt editiert von
                          #24

                          @newan
                          Das habe ich genau so drin.

                          NewanN 1 Antwort Letzte Antwort
                          0
                          • S Seamen

                            @newan
                            Das habe ich genau so drin.

                            NewanN Offline
                            NewanN Offline
                            Newan
                            schrieb am zuletzt editiert von
                            #25

                            @seamen Gerne kannst du mir den Login per PN senden und ich schaue mal.

                            1 Antwort Letzte Antwort
                            0
                            • NewanN Newan

                              @seamen

                              school: Gymnasium+Loxstedt
                              baseUrl: kephiso.webuntis.com

                              O Offline
                              O Offline
                              oxident
                              schrieb am zuletzt editiert von oxident
                              #26

                              @Seamen Also bei mir (andere Schule) war es ein Leerzeichen anstelle +

                              NewanN S 2 Antworten Letzte Antwort
                              0
                              • O oxident

                                @Seamen Also bei mir (andere Schule) war es ein Leerzeichen anstelle +

                                NewanN Offline
                                NewanN Offline
                                Newan
                                schrieb am zuletzt editiert von
                                #27

                                @oxident danke, der Tipp hilft. Bitte in der Anleitung aufnehmen @elektrickser-de

                                1 Antwort Letzte Antwort
                                0
                                • NewanN Offline
                                  NewanN Offline
                                  Newan
                                  schrieb am zuletzt editiert von
                                  #28

                                  @elektrickser-de Anleitung:

                                  Feld code: regular = "Unterricht normal"; irregular = "Unterricht in vertrettung (so zumindest derzeit die Vermutung); canceld = " Stunde fällt aus"

                                  1 Antwort Letzte Antwort
                                  0
                                  • J Offline
                                    J Offline
                                    J.M
                                    schrieb am zuletzt editiert von
                                    #29

                                    Guten Abend. Habe mir auch diesen Adapter gewünscht. Leider stellt unsere Schule keine Login Daten zur Verfügung so das wir uns als Anonymous anmelden. Wäre es möglich dies einzubauen?

                                    NewanN 1 Antwort Letzte Antwort
                                    0
                                    • J J.M

                                      Guten Abend. Habe mir auch diesen Adapter gewünscht. Leider stellt unsere Schule keine Login Daten zur Verfügung so das wir uns als Anonymous anmelden. Wäre es möglich dies einzubauen?

                                      NewanN Offline
                                      NewanN Offline
                                      Newan
                                      schrieb am zuletzt editiert von
                                      #30

                                      @j-m Kannst du mir ein wenig mehr berichten wie das geht? wie heißt die Schule und welche Daten findet man dann da?

                                      J 1 Antwort Letzte Antwort
                                      0
                                      • NewanN Newan

                                        @j-m Kannst du mir ein wenig mehr berichten wie das geht? wie heißt die Schule und welche Daten findet man dann da?

                                        J Offline
                                        J Offline
                                        J.M
                                        schrieb am zuletzt editiert von
                                        #31

                                        @newan Wir müssen die Schule suchen und dann die Klasse angeben. Die Gutenberg Schule in 13055 Berlin hat dies z.B.
                                        Wir sehen dann nur den Stundenplan und die News der Schule. Aber das würde mir auch reichen ;).

                                        E NewanN 2 Antworten Letzte Antwort
                                        0
                                        • ldittmarL ldittmar

                                          Cool... danke für den Adapter. Jetzt kommen die Details 😉

                                          Wie wäre es wenn man aus end- und startTime Date-Objekte machen würden, dann könnte man viel einfacher damit arbeiten.

                                          Das Programm gibt auch noch weitere wichtige Daten. Heute zum Beispiel gab es eine Benachrichtigung, dass in der Schule eine Telefonumstellung gibt.

                                          Außerdem gibt es die Möglichkeit Mitteilungen von Lehrer zu empfange/versenden. Das Versenden ist erstmal nicht so wichtig... aber der Posteingang ist schon cool. Da hat z.B. eine Lehrerin geschrieben, dass sie zu spät kommt.

                                          Dann gibt es noch das Info-Center mit Abwesenheiten, Termine und Sprechstunden. 🙂

                                          Aber klar... immer eins nach dem Anderen 😄

                                          Ahh... dein Nachtrag zum baseUrl, School ist echt wichtig, denn viele werden das so nicht hinbekommen. Das sollte ggf. in die Konfig-Seite rein.

                                          NewanN Offline
                                          NewanN Offline
                                          Newan
                                          schrieb am zuletzt editiert von
                                          #32

                                          @ldittmar Newsfeed ist implementiert!

                                          1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          759

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe