Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter time-switch v2.0.x GitHub/Latest

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter time-switch v2.0.x GitHub/Latest

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

      @walli545 bekomme folgende Fehler Meldung vor der geplanten Ausführung
      Zeitplan eingestellt auf 17:30

      time-switch.0	2020-04-29 17:24:27.388	error	at processTicksAndRejections (internal/process/task_queues.js:97:5)
      time-switch.0	2020-04-29 17:24:27.388	error	at fulfilled (/opt/iobroker/node_modules/iobroker.time-switch/build/main.js:5:58)
      time-switch.0	2020-04-29 17:24:27.388	error	at Generator.next (<anonymous>)
      time-switch.0	2020-04-29 17:24:27.388	error	at TimeSwitch.<anonymous> (/opt/iobroker/node_modules/iobroker.time-switch/build/main.js:127:52)
      time-switch.0	2020-04-29 17:24:27.388	error	(2820) TypeError: Cannot read property 'map' of undefined
      time-switch.0	2020-04-29 17:24:27.387	error	(2820) uncaught exception: Cannot read property 'map' of undefined
      

      node.png
      JS contoller 3.0.20
      Admin 4.1.1

      1 Reply Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active last edited by

        jo die Meldung hab ich auch

        bbd83990-7caa-4058-b827-a2e0d794917f-grafik.png

        B 1 Reply Last reply Reply Quote 0
        • B
          berndhome @arteck last edited by

          @arteck
          Ich habe mir mal den Code bei Zeile 127 angesehen:

          const schedule ist ein Javascript-Objekt ("JSON.parse(scheduleString);" ).
          Der Fehler passiert bei :
          const triggers = schedule.triggers.map((t) => this.triggerSerializer.deserialize(JSON.stringify(t)));
          Hier wollte man (so vermute ich) auf "schedule.triggers" den "Array.prototype.map()" anwenden.
          Dies funktioniert nach meinem Kenntnisstand nur bei Arrays und nicht bei einem Javascript-Objekt.
          Daher wird hier auch versucht nach einer Property "map" aufzulösen, den es definitiv (zumindest in meinem) Object nicht gibt.
          Vielleicht erst einem array zuweisen und dann die Map-Funktion anwenden?

          walli545 1 Reply Last reply Reply Quote 0
          • walli545
            walli545 @berndhome last edited by

            Dank der guten Unterstützung der Apple Nutzer konnte ich den Bug nun fixen, indem ich eine virtuelle Maschine mit MacOs aufgesetzt habe, danke dafür 😉 Bitte ausprobieren, ob es nun nach einem Update funktioniert @frankthegreat @berndhome, evtl. auch mit Fully mal ausprobieren, wobei das auch was anderes sein könnte.

            @Iccube @arteck Wie schauen den bei euch die Schedule Daten aus (im State)? Vermutlich habt ihr bevor der Fehler kam das automatische Schalten angemacht?
            @berndhome Das dürfte nicht das Problem sein, JSON.parse gibt ja ein aus dem String geparstes Objekt zurück und die triggers sind auch im JSON ein Array. Das wird dann auch in JS ein Array.

            Homer.J. B frankthegreat 3 Replies Last reply Reply Quote 0
            • Homer.J.
              Homer.J. @walli545 last edited by

              @walli545 funktioniert nun auch unter Apple. 👍 Danke

              1 Reply Last reply Reply Quote 0
              • B
                berndhome @walli545 last edited by Negalein

                @walli545 neueste Version läuft nun unter Fully und auf dem IPad. Vielen Dank für die schnelle Umsetzung!
                Jedoch nach wie vor der Fehler "property map....".

                time-switch.0	2020-04-30 20:04:28.320	error	at process._tickCallback (internal/process/next_tick.js:68:7)
                time-switch.0	2020-04-30 20:04:28.320	error	at fulfilled (/opt/iobroker/node_modules/iobroker.time-switch/build/main.js:5:58)
                time-switch.0	2020-04-30 20:04:28.320	error	at Generator.next (<anonymous>)
                time-switch.0	2020-04-30 20:04:28.320	error	at TimeSwitch.<anonymous> (/opt/iobroker/node_modules/iobroker.time-switch/build/main.js:127:52)
                time-switch.0	2020-04-30 20:04:28.320	error	(559640) TypeError: Cannot read property 'map' of undefined
                time-switch.0	2020-04-30 20:04:28.320	error	(559640) uncaught exception: Cannot read property 'map' of undefined
                

                Deine Erklärung hinsichtlich array kann ich daher so nicht nachvollziehen:
                Würde .map als Array-Funktion interpretiert, würde doch nicht nach einer Property "map" gesucht (siehe Fehlertext).
                Und diese Property gibt es auch wirklich nicht im "scheduleString" (lt. Debug-Ausgabe).
                Wäre in der arrayfunktion ein syntaktischer Fehler würde ein völlig anderer Fehler kommen.

                so sieht bei mir übrigens der Übergabewert (lt. Debug) aus:

                onScheduleChange: {"name":"Wärmepumpe","triggers":[{"type":"TimeTrigger","hour":13,"minute":35,"weekdays":[1,2,3,4,5,6,0],"id":"0","action":{"type":"OnOffStateAction","valueType":"boolean","onValue":true,"offValue":false,"booleanValue":true,"idsOfStatesToSet":["javascript.0.unipi.relays.Waermepumpe.power"]}},{"type":"TimeTrigger","hour":15,"minute":25,"weekdays":[1,2,3,4,5,6,0],"id":"8","action":{"type":"OnOffStateAction","valueType":"boolean","onValue":true,"offValue":false,"booleanValue":false,"idsOfStatesToSet":["javascript.0.unipi.relays.Waermepumpe.power"]}}]}
                

                Die Schaltfunktion habe ich auch mal getestet: "an" und "aus" nach Zeit funktioniert offensichtlich (trotz der Fehlermeldung)....

                walli545 1 Reply Last reply Reply Quote 0
                • W
                  Wolfi last edited by

                  Neue Version wieder unter https://github.com/walli545/ioBroker.time-switch/tarball/19-switch-boolean-values

                  ??

                  1 Reply Last reply Reply Quote 0
                  • walli545
                    walli545 @berndhome last edited by

                    @Wolfi Ja genau, sobald sich das ändert, gebe ich es hier bekannt.
                    @berndhome ich glaube ich hab was gefunden, bitte ausprobieren. Wenn du den Fehler weiterhin hast, bitte den ganzen Log anhängen, habe außerdem noch mehr Debug Output hinzugefügt.

                    FYI: Ich bin mir ziemlich sicher, dass die Stelle wo der Fehler geworfen wird so funktioniert. Ich denke, dass der der Fehler wo anders liegt, z.B. im Aufruf der Methode. Dass es funktioniert, kannst du ganz einfach in der Browser Konsole ausprobieren. Die Fehlermeldung ist ein wenig irreführend, es ist nämlich egal ob auf eine Methode oder eine Property von undefined zugegriffen wird, der Fehler ist gleich (Test: undefined.map() und undefined.a).


                    Der Test für JSON.parse:

                    const a = JSON.parse('{"name":"Wärmepumpe","triggers":[{"type":"TimeTrigger","hour":13,"minute":35,"weekdays":[1,2,3,4,5,6,0],"id":"0","action":{"type":"OnOffStateAction","valueType":"boolean","onValue":true,"offValue":false,"booleanValue":true,"idsOfStatesToSet":["javascript.0.unipi.relays.Waermepumpe.power"]}},{"type":"TimeTrigger","hour":15,"minute":25,"weekdays":[1,2,3,4,5,6,0],"id":"8","action":{"type":"OnOffStateAction","valueType":"boolean","onValue":true,"offValue":false,"booleanValue":false,"idsOfStatesToSet":["javascript.0.unipi.relays.Waermepumpe.power"]}}]}')
                    
                    a.triggers.map(t => t.type)
                    

                    Einfach zeilenweise in die Konsole eingeben.

                    B Iccube 2 Replies Last reply Reply Quote 0
                    • B
                      berndhome @walli545 last edited by

                      @walli545 Danke für die Infos, ich werde mal testen.
                      Noch ein Verbesserungsvorschlag: "die "ID vom geschalteten State" besser nicht in jeden "TimeTrigger" Datenpunkt mit aufnehmen, sondern dafür einen weiteren Datenpunkt spendieren.
                      Ich hatte erst angenommen, dass das zeit-gesteuerte Schalten nicht funktioniert, bis ich festgestellt habe,
                      dass (kommt wohl normal nicht vor, jedoch bei meinen Tests...) Änderungen bei "ID vom geschalteten State" sich auf neue Zeitvorgaben, jedoch nicht auf bis dato gesetzte Zeitvorgaben auswirkt. Daher der Vorschlag mit dem Datenpunkt
                      ( keine redundante Daten) oder aber sicher stellen, dass bei einer ID-Änderung diese in alle "TimeTrigger" erfolgt.

                      Ansonsten geht bei mir um 10:00Uhr die Beleuchtung an und um 13:00Uhr die Wärmepumpe.
                      Dies ist aber wohl kein geplantes Feature 😉

                      walli545 1 Reply Last reply Reply Quote 0
                      • Iccube
                        Iccube @walli545 last edited by

                        @walli545 mit der neuen version kommt der Fehler nicht mehr

                        1 Reply Last reply Reply Quote 0
                        • W
                          Wolfi last edited by

                          Was ist jetzt das Probehm?

                          1. Habe das Adapter komplett deinstalliert.
                          2. iobroker auch neu gestartet usw.
                            3, Adapter Neu installiert. (Mit Meldung erfolgreich)

                          aber die Instanz fehlt?

                          FredF 1 Reply Last reply Reply Quote 0
                          • FredF
                            FredF Most Active Forum Testing @Wolfi last edited by

                            @Wolfi sagte in Test Adapter time-switch v1.0.x GitHub/Latest:

                            Was ist jetzt das Probehm?

                            Bei dir 😊 Du musst bei Adaptern von Github die Instanz selber erzeugen mit nochmaligen betätigen des plus buttons.
                            Erst dann siehst du bei installiert eine 1
                            d0a3da2e-7cee-467b-ace9-a35e30df801e-grafik.png

                            W 1 Reply Last reply Reply Quote 0
                            • W
                              Wolfi @FredF last edited by

                              @FredF

                              a jetzetle sagt der schwabe

                              Danke

                              1 Reply Last reply Reply Quote 0
                              • walli545
                                walli545 @berndhome last edited by

                                @berndhome Wenn du die geschaltene Id änderst, sollten auch für alle bestehenden Actions die Ids geändert werden. Zum Thema Redundanz: Ja dazu habe ich mir auch schon Gedanken gemacht. Zumindest in der Adapterlogik möche ich die Struktur so aufrecht halten, da ich da geplant habe per Decorator Pattern dann z.B. eine ConditionalAction hinzuzufügen, die eine normale Action wrappt und nur bei einer Bedingung auslöst. Evtl. ändere ich die Serialisierung so ab, dass es pro Schedule eine On- und eine Off Action gibt und in den Triggern dann nur eine Referenz dazu exisitiert 🤔

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

                                  Hallo,
                                  ich habe mal ein Widget für unsere Visu gebaut:
                                  Vielleicht habt ihr Zeit und guckt Euch das mal an:
                                  http://dev.builder.minukodu.de/minukodu/?url=http%3A%2F%2F94.130.57.38%3A9090&file=devTimeSwitch_ReadOnly.json&forceUpdate

                                  Die Konfiguration kann hier verändert werden:
                                  http://dev.builder.minukodu.de/

                                  connect to: http://94.130.57.38:9090
                                  ConfigFile: devTimeSwitch_ReadOnly

                                  auf http://94.130.57.38:8081 läuft übrigens unsere ioBroker-demo-Instanz.
                                  RO-Zugang mit demo/demo

                                  Danke
                                  Sepp

                                  walli545 1 Reply Last reply Reply Quote 0
                                  • walli545
                                    walli545 @SVallant last edited by

                                    @SVallant Cool! Falls sich in dieser Version noch was an der Widgetlogik ändert, gebe ich dir bescheid. Wo gibt es den Quellcode dazu?

                                    SVallant liv-in-sky 2 Replies Last reply Reply Quote 0
                                    • SVallant
                                      SVallant @walli545 last edited by

                                      @walli545 Danke, nightly Build hier zum Download

                                      TimeSwitch-Widget ist minuvis-webapp.iobroker\src\components\widgets\TimeSwitch.js

                                      Die Visu ist eine React-App ...

                                      Werde das noch ein bißchen testen und dann in die nächste Version bei Github einfliessen lassen.
                                      Sage dir dann auch Bescheid !

                                      1 Reply Last reply Reply Quote 0
                                      • frankthegreat
                                        frankthegreat @walli545 last edited by

                                        @walli545 Gerade gesehen, das es eine neue Version gibt 😳
                                        Wird jetzt auch auf iPad und iPhone richtig dargestellt 👍

                                        Super Job, den du hier machst. Ich freue mich schon auf weitere Features von dir.

                                        1 Reply Last reply Reply Quote 0
                                        • W
                                          Wolfi last edited by

                                          @walli545
                                          Komisches verhalten unter Android
                                          Sobald ich mit Android Tablet oder Handy versuche im Zeit zu ändern oder den Namen zu ändern.
                                          Kommt kurz die Tastatur hoch die View mit Time-switch schließt sich und ich lande in meiner Hauptview dem Dasbord??
                                          Via PC funktioniert es.

                                          walli545 1 Reply Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky @walli545 last edited by

                                            @walli545 sorry - ich schon wieder - habe heute auf js-controller 3 upgedatet

                                            jetzt kommt das im browser:

                                            Image 4.png

                                            die widget scheinen aber zu funktionieren und auch zu schalten

                                            im log vom iobroker kommt das:

                                            Image 5.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            822
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter switch test time vis zeitschaltuhr
                                            75
                                            481
                                            86177
                                            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-2023
                                            logo