Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. TESTER: Neuer Adapter Webuntis

    NEWS

    • Update NodeJS best practise, supported 14, 16 und 18!

    • Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium ;-)

    • Update js-controller 4.0.24 (Stable)

    TESTER: Neuer Adapter Webuntis

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Seamen last edited by

      Sehr gute idee! werde ich mir definitiv anschauen!

      1 Reply Last reply Reply Quote 0
      • O
        oxident @Newan last edited by

        @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".

        Newan 1 Reply Last reply Reply Quote 0
        • Newan
          Newan @oxident last edited by

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

          1 Reply Last reply Reply Quote 0
          • Newan
            Newan last edited by

            @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 Reply Last reply Reply Quote 0
            • Newan
              Newan last edited by

              Update online, happy testing

              E 1 Reply Last reply Reply Quote 0
              • E
                elektrickser.de @Newan last edited by

                @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.

                Newan E 2 Replies Last reply Reply Quote 0
                • Newan
                  Newan @elektrickser.de last edited by

                  @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 Reply Last reply Reply Quote 0
                  • E
                    elektrickser.de @elektrickser.de last edited by

                    @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 Reply Last reply Reply Quote 0
                    • E
                      elektrickser.de @elektrickser.de last edited by

                      @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 Reply Last reply Reply Quote 0
                      • S
                        Seamen last edited by

                        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 Reply Last reply Reply Quote 0
                        • Newan
                          Newan last edited by

                          @seamen

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

                          S O 2 Replies Last reply Reply Quote 0
                          • S
                            Seamen @Newan last edited by

                            @newan
                            Das habe ich genau so drin.

                            Newan 1 Reply Last reply Reply Quote 0
                            • Newan
                              Newan @Seamen last edited by

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

                              1 Reply Last reply Reply Quote 0
                              • O
                                oxident @Newan last edited by oxident

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

                                Newan S 2 Replies Last reply Reply Quote 0
                                • Newan
                                  Newan @oxident last edited by

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

                                  1 Reply Last reply Reply Quote 0
                                  • Newan
                                    Newan last edited by

                                    @elektrickser-de Anleitung:

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

                                    1 Reply Last reply Reply Quote 0
                                    • J
                                      J.M last edited by

                                      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?

                                      Newan 1 Reply Last reply Reply Quote 0
                                      • Newan
                                        Newan @J.M last edited by

                                        @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 Reply Last reply Reply Quote 0
                                        • J
                                          J.M @Newan last edited by

                                          @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 Newan 2 Replies Last reply Reply Quote 0
                                          • Newan
                                            Newan @ldittmar last edited by

                                            @ldittmar Newsfeed ist implementiert!

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            632
                                            Online

                                            29.0k
                                            Users

                                            63.1k
                                            Topics

                                            964.0k
                                            Posts

                                            37
                                            167
                                            3490
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2021
                                            logo