Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS19001849 - Amazon Alexa Wecker auswerten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    LBS19001849 - Amazon Alexa Wecker auswerten

    Hallo zusammen,

    panzaeron: da ich zu diesem LBS kein eigenen Thread bisher gefunden habe, mach ich hier mal ein neuen auf, da sonst die Diskussion vermutlich im Alexa Control Thread untergeht und auch etwas OT dort wäre. Vielen Dank aber schonmal für diesen LBS!

    ich habe den LBS installiert, er läuft prinzipiell auch schon, jedoch sind mir noch ein paar Dinge aufgefallen:

    1) Wenn man alle Wecker in der Alexa APP löscht (also ein neues, leeres JSON an A1 ankommt) bleiben die alten Daten an den Ausgängen A2-A8 weiter bestehen, selbst an A1 bleibt der Status auf 1. Ich fände es logischer wenn dann auch keine Ausgaben an A1-A8 kämen (z.B. dann auch "leer" oder 0)

    2) Wenn man per Sprachbefehl "lösche den nächsten Wecker" den nächsten Alarm einer Serie (ich nutze z.B. wochtags 6Uhr einen Wecker und möchte nun morgen am Ostermontag nicht geweckt werden, danach aber wieder regelmäßig), macht das die Alexa sauber (Wecker bleibt am nächsten Tag aus), durch den LBS kommen aber trotzdem die nächsten Alarmtrigger an A11-15 noch. Allerdings ist auch an E1 im JSON wohl kein Unterschied zu sehen, daher vermute ich daß man das nur durch löschen der gesamten Serie für den LBS handlebar machen kann.

    3) Wenn man dann per Sprachbefehl alle Wecker incl. der Serie löscht (in der Alexa APP werden sie dann aber wohl nicht gelöscht sondern nur deaktiviert) kommt auch immernoch an den Ausgängen A2-A8 die alte Weckzeit (s. Pkt 1). Im JSON an A1 sind auch noch alle Wecker drin, allerdings gibt es im JSON dann den "status":"OFF". Dieser Status wird aber im LBS wohl noch gar nicht berücksichtigt und fehlt m.E. noch als Ausgang, bzw. sollte wie unter 1) dann an A2-A8 auch dieser Wecker nicht bei der Weckzeitberechnung berücksichtigt werden.

    Hat irgendwer ähnlich Probleme festgestellt und ggf. irgendwelche Tips wie ich die richtigen Weckzeiten in EDOMI bekomme und wie man mit gelöschten Weckern umgehen kann?
    Zuletzt geändert von tger977; 04.04.2021, 19:27.
    Gruß
    Andi

    #2
    und noch etwas: wenn im recurring pattern vorher eine Ausgabe drin war (z.B. "XXXX-WD") und im neuen/nächsten Alarm dann ein "null" aufgrund eines einmaligen Alarms kommt, bleibt E8 auf XXXX-WD und die Daten sind leider inkonsistent.

    Es scheint beim LBS generell mit Werten "null" keine Ausgabe zu erfolgen?
    Gruß
    Andi

    Kommentar


      #3
      Hallo tger977,

      danke für deine ausführliche Beschreibung.

      Zitat von tger977 Beitrag anzeigen
      Es scheint beim LBS generell mit Werten "null" keine Ausgabe zu erfolgen?
      Da hast du recht, wenn NULL, dann wurde nichts ausgegeben. Jetzt habe ich den LBS 19001849 leicht geändert (neue Version V0.4), so dass jetzt die Werte an A1-A8 gelöscht werden, wenn ein Wecker deaktiviert oder gelöscht wird. Damit sollten auch deine Punkte 1 und 3 behoben sein.

      Bei mir tritt gerade das Problem auf, dass der LBS 19000809 von jonofe bei jedem Wecker unknown als Device ausgibt und so die Wecker nicht unterschieden werden können.

      Kommentar


        #4
        Wow, danke für den Express Support. Ich werde es gleich mal testen. Gestern hatte ich keine Probleme mit den Devices, mal sehen ob ich das bei mir reproduzieren kann.
        Gruß
        Andi

        Kommentar


          #5
          irgendwie funktioniert es nun gar nicht mehr bei mir mit der V0.4:

          Ich habe folgenden JSON String (hab die richtigen ID's durch xxxx ersetzt) an E1 und es kommen nur leere Ausgänge:

          Code:
          [{"id":"xxxx","new":0,"device":"Schlafzimmer","createTime":"20:37:05","createDate":"04.04.21","alarmTime":"06:00:00","alarmDate":"2021-04-06","type":"MusicAlarm","reminderLabel":null,"status":"OFF","recurringPattern":null,"snoozedToTime":null},{"id":"xxxx","new":0,"device":"Schlafzimmer","createTime":"12:06:39","createDate":"04.05.21","alarmTime":"06:00:00","alarmDate":"2021-04-06","type":"MusicAlarm","reminderLabel":null,"status":"ON","recurringPattern":"XXXX-WD","snoozedToTime":null}]
          Dann hab ich alle Wecker in der APP gelöscht und einen neuen Einzelalarm gesetzt:

          Code:
          [{"id":"xxxx","new":0,"device":"Schlafzimmer","createTime":"12:15:20","createDate":"04.05.21","alarmTime":"12:17:00","alarmDate":"2021-04-05","type":"MusicAlarm","reminderLabel":null,"status":"ON","recurringPattern":null,"snoozedToTime":null}]
          Auch hier nur leere Ausgänge...

          P.S. bei mir kommen die device Namen sauber aus dem 809er LBS raus (s.o.)
          Gruß
          Andi

          Kommentar


            #6
            noch ein Hinweis für den Hilfetext: E40 sollte regelmäßig mit 1 oder 2 (je nachdem welche Wecker man haben möchte) getriggert werden. Mit 1 kommen immer alle Wecker vom gesamten Account...
            Gruß
            Andi

            Kommentar


              #7
              es scheint an der Umstellung auf die InputQueue zu liegen, da kommen keine Eingangswerte im EXEC mehr an. Ich habe diese Umstellung rückgängig gemacht und es funktioniert.

              Und: Im log kommt mit der originalen 0.4 immer ein falscher / unlogischer Logeintrag:

              Code:
              [COLOR=#393930][FONT=EDOMIfontMono][SIZE=10px]Alarm found (nextAlarm: 1617681600 > Timestamp: 1617681600) A: 1[/SIZE][/FONT][/COLOR]


              Gruß
              Andi

              Kommentar


                #8
                leider wird auch in V0.4 ohne InputQueue noch der Ausgang A8 z.T. falsch gesetzt bzw. nicht überschrieben. Folgender Ablauf zum Reproduzieren:

                1) Wecker auf Werktags 6Uhr früh gesetzt (recurring Alarm)
                2) Wecker einmalig auf morgen früh 8 Uhr gesetzt
                hier ist noch soweit alles ok es bleibt Wecker aus 1) an den Ausgängen A2-A8
                3) dann per Sprachbefehl den nächsten 6Uhr Wecker gelöscht
                hier bleibt der JSON String leider gleich, damit kann der LBS auch nichts machen (da müsste Amazon den String anpassen, die Ausgabe passt irgendwie nicht zu Sprachbefehl "Lösche nächste Weckzeit", ich hätte erwartet dass dann der Status auf OFF geht bis 6Uhr morgen früh und dann wieder auf ON für übermorgen...)
                4) dann den Werktags 6Uhr früh Wecker komplett als Serie gelöscht
                danach kommt es dann an A2-A7 zu der Änderung auf den 8 Uhr Wecker aus 2), ABER: an E7 bleibt der recurring pattern auf XXXX-WD und wird nicht gelöscht...
                Gruß
                Andi

                Kommentar


                  #9
                  Danke für das ausführliche Testen, ich kann leider nicht alles nachvollziehen, aber im einzelnen:
                  Die Umstellung auf getInputsQueued funktioniert bei mir und verhindert, dass einzelne Änderungen an E1 verloren gehen, aber ist in diesem LBS nicht unbedingt notwendig. Trotzdem habe es drin gelassen, weil es eigentlich die "richtige" Realisierung für endlos laufende LBS ist.
                  Zu A8: Der recurring pattern wird direkt aus dem json auf den Ausgang gegeben, ich habe es jetzt so geändert, dass zunächst geprüft wird ob überhaupt ein recurring pattern existiert und dieser nur dann ausgegeben wird, ansonsten wird A8 geleert.
                  Den überfüssigen Log-Eintrag habe ich wieder entfernt, machte wirklich kein Sinn.

                  Aber jetzt habe ich auch wieder Namen, ein erneutes aktivieren brachte auch wieder die Namen ans Licht...

                  Ich habe den LBS gerade im Download aktualisiert (Version 0.4.2).

                  Ich hoffe jetzt funktioniert alles wie gedacht (abgesehen von Punkt 3)...

                  Kommentar


                    #10
                    Zitat von panzaeron Beitrag anzeigen
                    Ich habe den LBS gerade im Download aktualisiert (Version 0.4.2).

                    Ich hoffe jetzt funktioniert alles wie gedacht (abgesehen von Punkt 3)...
                    Es funktioniert nun einwandfrei (jetzt auch mit getInputsQueued)!

                    Einziges Sahnehäubchen wäre jetzt ggf. noch an A1 einen passenden Statustext auszugeben (z.B. "kein aktiver Alarm") wenn ein leeres JSON kommt. Im Moment kommt dort dann wie an allen anderen Ausgängen einfach ein leerer Ausgang. Aber für mich tut jetzt alles!

                    Nochmal vielen Dank für die spontanen Änderungen!
                    Gruß
                    Andi

                    Kommentar


                      #11
                      Freut mich zu hören

                      In der 0.4.3 Version wird jetzt die Meldung "No active alarm clock" ausgegeben, wenn kein aktiver Wecker gefunden wurde.

                      Kommentar


                        #12
                        Warum nehmt ihr nicht den LBS gleich leer, und hängt den an den Ausgang? So wird jetzt jeder mit diesem ominösen englischen Text beglückt... http://service.knx-user-forum.de/?co...ad&id=19002045
                        Wobei da in der Hilfe glaub ein Fehler ist... E2 wird bei E1 gleich leer optional ausgegeben..
                        Zuletzt geändert von vento66; 06.04.2021, 15:09.

                        Kommentar


                          #13
                          Zitat von vento66 Beitrag anzeigen
                          Warum nehmt ihr nicht den LBS gleich leer, und hängt den an den Ausgang? So wird jetzt jeder mit diesem ominösen englischen Text beglückt... http://service.knx-user-forum.de/?co...ad&id=19002045
                          Den Ausgang habe ich auf deutsch geändert (V0.4.5), das englisch machte keinen Sinn, weil ja auch schon die Fehlermeldungen auf deutsch waren
                          Es kann auch eine Ausgangsbox: Vergleicher mit Sperre (LBS 12000016) oder Vergleicher A=B (LBS 15000040) mit E2 = "Kein Wecker aktiv" verwendet werden, um darauf zu reagieren.
                          Zitat von vento66 Beitrag anzeigen
                          Wobei da in der Hilfe glaub ein Fehler ist... E2 wird bei E1 gleich leer optional ausgegeben..
                          Bei E2 = [leer] wird der nächste aktive Wecker von allen Devices ausgegeben, ich habe die Hilfe ergänzt.
                          Zuletzt geändert von vento66; 07.04.2021, 09:20. Grund: Quote repariert

                          Kommentar


                            #14
                            Nee ich meine den 19002045 LBS mit der fehlerhaften Hilfe.... Ich würd gar keine Texte vorgeben, oder konfigurierbar machen. Der LBS 19002045 ist doch aber wie gemacht für deine Anwendung. E1 ungleich leer, dann A1 auf E1. E1 Leer, dann A1 auf E2. Somit kann sich jeder seinen Text selber zusammenstricken.

                            Kommentar


                              #15
                              ich hab mich heute nochmal mit dem LBS intensiv beschäftigt, da ich nun auch eine Sprachausgabe der Weckzeit und auch ein Löschen der inaktiven Wecker (da sammelt sich ansonsten eine ziemliche JSON Liste an E1 bei mir mit Status OFF, da ja per Sprachbefehl die Weckzeiten nicht wirklich gelöscht werden können sondern vielmehr nur deaktiviert werden) als Logik gebaut habe. Dabei fiel mir auf daß der LBS nach dem Trigger an E1 durch ein geändertes JSON bei mir ca. 1-2min benötigt bis an den Ausgängen dann die richtigen, aktualisierten Ausgabewerte kommen. Das scheint mir an den GetInputQueue Befehlen zu liegen... Ist das bei jemand anderem auch so? Was ist ggf. der Grund warum es so lange benötigt mit der Queue? Jemand eine Idee?

                              Also grundsätzlich läuft alles, aber halt sehr zäh...
                              Gruß
                              Andi

                              Kommentar

                              Lädt...
                              X