Ankündigung

Einklappen
Keine Ankündigung bisher.

Unterstützung bei der Entwicklung eines Landroid-Plugin

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

  • Sipple
    antwortet
    Schaut jetzt gut aus. Werd's noch etwas weiter beobachten.

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    IMHO braucht man die reinen Visualisierungs-Items nicht über das UZSU-Plugin laufen zu lassen. Wenn ich die Readme des Plugins richtig verstanden habe, gibt es nur die Funktion "Mähen nach UZSU", die echt über das UZSU-Plugin den Scheduler von shNG mit Ereignissen beladen soll. Die anderen items, die nur visualisiert werden können, kann man anders nennen, z.B. "worx.visu.app_mow_visu.visu" anstelle "worx.visu.app_mow_uzsu.uzsu". Das UZSU-Plugin ignoriert diese dann, während die UZSU-Widgets von smartVISU mit beliebigen item-Namen umgehen können, sofern sie ein gültiges Dict darin vorfinden. Die Structs kann man ansonsten so lassen. Vorteil ist, dass das UZSU-Plugin nicht noch zusätzliche Daten in das Dict schreibt und damit item updates generiert und dass es den shNG Scheduler nicht unnötig belastet.

    Gruß
    Wolfram

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Fast schon schade, jetzt, wo ich nochmal was getestet habe
    Wenn ich nämlich eine zweite Zeitdauer am Tag definiere, passt alles wunderbar.
    Danke wieder einmal für deine schnelle Abhilfe. Wieder ein super Plugin geworden.

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    … Andre war schneller. Ich lösche den Beitrag zum Fehler und hänge den zweiten Teil unten wieder an.
    Zuletzt geändert von wvhn; 23.05.2022, 16:42.

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Super vielen Dank,

    ich habe das Problem erkannt, die Ursache lag darin, dass für den zweiten Kalendereintrag je Tag nicht richtig geparst wurde. Es wurde immer die "Duration" des ersten Eintrags verwendet. Bug fix ist hochgeladen.

    Bitte nochmal testen, Danke

    Gruss Andre

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Und nachdem ich jetzt noch etwas länger gewartet habe, zeigt auch plötzlich das Dict und das Widget die geänderten Zeiten, also inkl. dem nicht existenten Nacht-Zeitraum bis 04:30.

    Screenshot 2022-05-23 164140.png

    Was die falschen Nachtzeiten angeht, folgende Vermutung.

    Wie man in der Executor Ausgabe sieht, gibt es ja zwei große Blöcke, weil man pro Tag jeweils zwei Mähzeiten einstellen kann. Der erste Block wird korrekt geparst. Beim zweiten sieht das Plugin "00:00" und rafft die Duration "0" nicht, also nimmt es die letzte bekannte Duration von dem Tag (210 bzw. 270 Minuten) und baut das so zusammen.
    Zuletzt geändert von Sipple; 23.05.2022, 16:09.

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Hab noch was getestet. Am Montag in der App mal eine Stunde länger, also von 9:00 bis 13:30.

    Im Executor:

    Code:
    worx.schedule_day_sunday_start          00:00
    worx.schedule_day_sunday_duration       0
    worx.schedule_day_sunday_boundary       0
    worx.schedule_day_monday_start          09:00
    worx.schedule_day_monday_duration       270
    worx.schedule_day_monday_boundary       1
    worx.schedule_day_tuesday_start         09:00
    worx.schedule_day_tuesday_duration      210
    worx.schedule_day_tuesday_boundary      0
    worx.schedule_day_wednesday_start       09:00
    worx.schedule_day_wednesday_duration    210
    worx.schedule_day_wednesday_boundary    1
    worx.schedule_day_thursday_start        09:00
    worx.schedule_day_thursday_duration     210
    worx.schedule_day_thursday_boundary     0
    worx.schedule_day_friday_start          09:00
    worx.schedule_day_friday_duration       210
    worx.schedule_day_friday_boundary       1
    worx.schedule_day_saturday_start        00:00
    worx.schedule_day_saturday_duration     0
    worx.schedule_day_saturday_boundary     0
    worx.schedule_day_sunday_2_start        00:00
    worx.schedule_day_sunday_2_duration     0
    worx.schedule_day_sunday_2_boundary     0
    worx.schedule_day_monday_2_start        00:00
    worx.schedule_day_monday_2_duration     0
    worx.schedule_day_monday_2_boundary     0
    worx.schedule_day_tuesday_2_start       00:00
    worx.schedule_day_tuesday_2_duration    0
    worx.schedule_day_tuesday_2_boundary    0
    worx.schedule_day_wednesday_2_start     00:00
    worx.schedule_day_wednesday_2_duration  0
    worx.schedule_day_wednesday_2_boundary  0
    worx.schedule_day_thursday_2_start      00:00
    worx.schedule_day_thursday_2_duration   0
    worx.schedule_day_thursday_2_boundary   0
    worx.schedule_day_friday_2_start        00:00
    worx.schedule_day_friday_2_duration     0
    worx.schedule_day_friday_2_boundary     0
    worx.schedule_day_saturday_2_start      00:00
    worx.schedule_day_saturday_2_duration   0
    worx.schedule_day_saturday_2_boundary   0
    Im Dict:

    Code:
    {'interpolation': {'type': 'none', 'initialized': False, 'itemtype': 'num', 'interval': '', 'initage': ''}, 'list': [{'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,WE,FR', 'value': '1', 'time': '09:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,WE,FR', 'value': '2', 'time': '12:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '0', 'time': '09:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '2', 'time': '12:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,WE,FR', 'value': '1', 'time': '00:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,WE,FR', 'value': '2', 'time': '03:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '0', 'time': '00:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '2', 'time': '03:30'}], 'active': True, 'SunCalculated': {'sunrise': {'MO': '05:23', 'TU': '05:22', 'WE': '05:21', 'TH': '05:20', 'FR': '05:19', 'SA': '05:18', 'SU': '05:17'}, 'sunset': {'MO': '20:58', 'TU': '20:59', 'WE': '21:00', 'TH': '21:01', 'FR': '21:02', 'SA': '21:03', 'SU': '21:04'}}}
    Im Dict als LETZTER Wert:

    Code:
    {'interpolation': {'type': 'none', 'initialized': False, 'itemtype': 'num', 'interval': '', 'initage': ''}, 'list': [{'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,WE,FR', 'value': '1', 'time': '09:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO', 'value': '2', 'time': '13:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '0', 'time': '09:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '2', 'time': '12:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=WE,FR', 'value': '2', 'time': '12:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,WE,FR', 'value': '1', 'time': '00:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO', 'value': '2', 'time': '04:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '0', 'time': '00:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '2', 'time': '03:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=WE,FR', 'value': '2', 'time': '03:30'}], 'active': True, 'SunCalculated': {'sunrise': {'MO': '05:23', 'TU': '05:22', 'WE': '05:21', 'TH': '05:20', 'FR': '05:19', 'SA': '05:18', 'SU': '05:17'}, 'sunset': {'MO': '20:58', 'TU': '20:59', 'WE': '21:00', 'TH': '21:01', 'FR': '21:02', 'SA': '21:03', 'SU': '21:04'}}}
    Im Dict als VORHERIGER Wert:

    Code:
    {'interpolation': {'type': 'none', 'initialized': False, 'itemtype': 'num', 'interval': '', 'initage': ''}, 'list': [{'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,WE,FR', 'value': '1', 'time': '09:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO', 'value': '2', 'time': '13:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '0', 'time': '09:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '2', 'time': '12:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=WE,FR', 'value': '2', 'time': '12:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,WE,FR', 'value': '1', 'time': '00:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO', 'value': '2', 'time': '04:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '0', 'time': '00:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '2', 'time': '03:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=WE,FR', 'value': '2', 'time': '03:30'}], 'active': True}
    Das ist irgendwie schräg. Im Executor passt es.
    Im Dict aktueller Wert NICHT, da kommen die ALTEN Werte wieder raus (12:30 bzw. 03:30) Und so zeigt es das Widget auch an.
    Im letzten Wert steht dann wie erwartet 13:30 und entsprechend in der Nacht 04:30.
    Im vorherigen Wert fehlt dafür die sunrise/sunset Zeiten.
    Auffällig ist, dass die falschen nächtlichen Einträge mit den richtigen am Tag zusammenhängen. Also vorher: 00:00 bis 03:30 und 09:00 bis 12:30, macht jeweils 210 Minuten. Nach dem Ändern auf 13:30 am Tag wird auch der falsche Eintrag in der Nacht auf 04:30 verlängert, also jeweils 270 Minuten.

    Sehr verwirrend.

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Bitteschön:

    Code:
    worx.schedule_day_sunday_start          00:00
    worx.schedule_day_sunday_duration       0
    worx.schedule_day_sunday_boundary       0
    worx.schedule_day_monday_start          09:00
    worx.schedule_day_monday_duration       210
    worx.schedule_day_monday_boundary       1
    worx.schedule_day_tuesday_start         09:00
    worx.schedule_day_tuesday_duration      210
    worx.schedule_day_tuesday_boundary      0
    worx.schedule_day_wednesday_start       09:00
    worx.schedule_day_wednesday_duration    210
    worx.schedule_day_wednesday_boundary    1
    worx.schedule_day_thursday_start        09:00
    worx.schedule_day_thursday_duration     210
    worx.schedule_day_thursday_boundary     0
    worx.schedule_day_friday_start          09:00
    worx.schedule_day_friday_duration       210
    worx.schedule_day_friday_boundary       1
    worx.schedule_day_saturday_start        00:00
    worx.schedule_day_saturday_duration     0
    worx.schedule_day_saturday_boundary     0
    worx.schedule_day_sunday_2_start        00:00
    worx.schedule_day_sunday_2_duration     0
    worx.schedule_day_sunday_2_boundary     0
    worx.schedule_day_monday_2_start        00:00
    worx.schedule_day_monday_2_duration     0
    worx.schedule_day_monday_2_boundary     0
    worx.schedule_day_tuesday_2_start       00:00
    worx.schedule_day_tuesday_2_duration    0
    worx.schedule_day_tuesday_2_boundary    0
    worx.schedule_day_wednesday_2_start     00:00
    worx.schedule_day_wednesday_2_duration  0
    worx.schedule_day_wednesday_2_boundary  0
    worx.schedule_day_thursday_2_start      00:00
    worx.schedule_day_thursday_2_duration   0
    worx.schedule_day_thursday_2_boundary   0
    worx.schedule_day_friday_2_start        00:00
    worx.schedule_day_friday_2_duration     0
    worx.schedule_day_friday_2_boundary     0
    worx.schedule_day_saturday_2_start      00:00
    worx.schedule_day_saturday_2_duration   0
    worx.schedule_day_saturday_2_boundary   0
    Da sieht das plausibel aus (für mich)

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hi Sipple,

    könntest Du mal folgendem Code im Executor ausführen und das Ergebnis als Code-Block posten, das liefert die Werte die von pyworxcloud geliefert werden.
    Danke

    Code:
    from lib.item import Items
    sh_items = Items.get_instance()
    for i in sh_items.match_items("*schedule_day*"):
        indent=40-len(str(i))
        print(str(i) + indent*" " + str(i()))
    Das Ergebnis sollte so aussehen (natürlich mit Deinen Werten) - Bitte betreffend der lesbarkeit als "Quelle" in den Post einfügen

    Code:
    worx.schedule_day_sunday_start          00:00
    worx.schedule_day_sunday_duration       0
    worx.schedule_day_sunday_boundary       0
    worx.schedule_day_monday_start          08:00
    worx.schedule_day_monday_duration       120
    worx.schedule_day_monday_boundary       1
    worx.schedule_day_tuesday_start         08:00
    worx.schedule_day_tuesday_duration      120
    worx.schedule_day_tuesday_boundary      0
    worx.schedule_day_wednesday_start       08:00
    worx.schedule_day_wednesday_duration    120
    worx.schedule_day_wednesday_boundary    0
    worx.schedule_day_thursday_start        08:00
    worx.schedule_day_thursday_duration     120
    worx.schedule_day_thursday_boundary     1
    worx.schedule_day_friday_start          08:00
    worx.schedule_day_friday_duration       120
    worx.schedule_day_friday_boundary       0
    worx.schedule_day_saturday_start        08:00
    worx.schedule_day_saturday_duration     120
    worx.schedule_day_saturday_boundary     0
    worx.schedule_day_sunday_2_start        00:00
    worx.schedule_day_sunday_2_duration     0
    worx.schedule_day_sunday_2_boundary     0
    worx.schedule_day_monday_2_start        13:00
    worx.schedule_day_monday_2_duration     495
    worx.schedule_day_monday_2_boundary     0
    worx.schedule_day_tuesday_2_start       13:00
    worx.schedule_day_tuesday_2_duration    495
    worx.schedule_day_tuesday_2_boundary    0
    worx.schedule_day_wednesday_2_start     13:00
    worx.schedule_day_wednesday_2_duration  495
    worx.schedule_day_wednesday_2_boundary  0
    worx.schedule_day_thursday_2_start      13:00
    worx.schedule_day_thursday_2_duration   495
    worx.schedule_day_thursday_2_boundary   0
    worx.schedule_day_friday_2_start        13:00
    worx.schedule_day_friday_2_duration     495
    worx.schedule_day_friday_2_boundary     0
    worx.schedule_day_saturday_2_start      13:00
    worx.schedule_day_saturday_2_duration   495
    worx.schedule_day_saturday_2_boundary   0

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Ich weiß nicht ob die Info nützlich ist, aber eben hab ich durch Zufall aus dem Augenwinkel gesehen, dass in der UZSU Tabelle (siehe Beispiel in Post 113) plötzlich 3 der falschen 00:00 Uhr - 03:30 Uhr verschwunden sind. Nach einigen Sekunden sind sie aber wieder aufgetaucht. Ohne jedes weitere Zutun.

    Gruß, Martin

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Ok, danke für Eure Hilfe.

    Ich beobachte weiter. Grad habe ich wieder Akkutemperaturfehler, der hat Priorität. Hat aber nichts mit dem Plugin zu tun. Den bekomme ich aktuell nur weg, wenn ich den Mäher aus und wieder einschalte.

    Gruß, Martin

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    AndreK in dem Dict von Sipple fehlt die Angabe für „plugin_version“. Deshalb werden Im Widget die Zeitserien-Buttons nicht angezeigt. Zudem fehlen sunrise und sunset für den aktuellen Tag (sunCalculated ist vorhanden). Es scheint Bedingungen zu geben, unter denen das UZSU-Plugin nicht alle erforderlichen Informationen ins Dict schreibt. Kannst Du Dir das mal ansehen?

    Sipple im Admin Interface sollte zu sehen sein, welches Plugin das Dict wieder ändert, nachdem Du die überflüssigen Einträge mit dem smartVISU Widget gelöscht hast. Das kann eigentlich nur der Poll-Zyklus sein.

    Gruß
    Wolfram
    Zuletzt geändert von wvhn; 23.05.2022, 11:25.

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hi Sipple,

    da läuft definitiv noch was falsch beim parsen der Infos von pyworxcloud. Was, weiß ich im Moment auch noch nicht. Die Daten stehen so wie angezeigt im "dict" für das Widget. Das Widget macht zunächst alles richtig, nur eben das Plugin noch nicht. Es ist sicher so, dass die Daten bei jedem Poll überschrieben werden. Die Infos kommen direkt über MQTT vom Mäher, nicht über die API.

    Das müssen wir weiter untersuchen. Ich überlege mal wie wir das Problem eingrenzen können. Das wird in sofern nicht ganz einfach da die einzelnen Daten/Werte von pyworxcloud schon getrennt geliefert werden und nicht mehr als komplettes "dict". Ich werde mal eine kleine Routine für den "Executor" basteln der das komplette "dict" zurückgibt. Dann sehen wir weiter.

    Ich melde mich wieder.

    Gruss
    Andre

    P.S. Mann kann das dict für die Mäherzeiten überschreiben (via Visu) diese werden aber nicht an den Mäher gesendet, somit kommen beim nächsten Poll wieder die Daten des Mähers.

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    wvhn Nein, ist definitiv die SV 3.2.2 und SHNG 1.9.2.

    Du meinst das hier?

    Code:
    {'interpolation': {'type': 'none', 'initialized': False, 'itemtype': 'num', 'interval': '', 'initage': ''}, 'list': [{'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,WE,FR', 'value': '1', 'time': '09:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,WE,FR', 'value': '2', 'time': '12:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '0', 'time': '09:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '2', 'time': '12:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,WE,FR', 'value': '1', 'time': '00:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,WE,FR', 'value': '2', 'time': '03:30'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '0', 'time': '00:00'}, {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=TU,TH', 'value': '2', 'time': '03:30'}], 'active': True, 'SunCalculated': {'sunrise': {'SU': '05:24', 'MO': '05:23', 'TU': '05:22', 'WE': '05:21', 'TH': '05:20', 'FR': '05:19', 'SA': '05:18'}, 'sunset': {'SU': '20:56', 'MO': '20:58', 'TU': '20:59', 'WE': '21:00', 'TH': '21:01', 'FR': '21:02', 'SA': '21:03'}}}
    Da stehen die Zeiten natürlich auch so drin, aber wie kommen die in das DICT? Im Mähroboter, resp. der App, gibt es die nicht. Ich habe diese vier falschen Zeilen jetzt mal in der Visu gelöscht. Mal sehen, was passiert, wenn der nächste Poll-Zyklus um ist.

    EDIT: Gelöscht. Die UZSU Tabelle wurde richtig angezeigt. Nach kurzer Zeit sind sie wieder da. Also interpretiert irgendein Teil irgendwas vom Mäher flasch. Entweder schon in pyworxcloud oder im Plugin. Sonst fällt mir keine Erklärung ein.

    Korrektur: Ich vermute, die falschen Zeiten kommen nicht durch den nächsten Poll-Zyklus wieder zurück, sondern schlicht dadurch, dass man über die UZSU das dict nicht überschreiben/editieren kann. Ganz durchschaut hab ich es noch nicht.

    Gruß, Martin
    Zuletzt geändert von Sipple; 22.05.2022, 17:47.

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Sipple bitte gib die Versionen an, mit denen Du das getestet hast. Nach dem Verlauf des Threads vermute ich shNG v1.9.2, während der Screenshot eine smartVISU Version älter als v3.2 vermuten lässt.
    Wie gesagt kann es sein, dass die Kompatibilität nicht voll abgesichert ist.

    Woher die nicht existenten Schaltzeiten kommen, kannst Du untersuchen, indem Du Dir entweder im shNG Admin Interface das Dict des uzsu-Items anzeigen lässt, oder über die Websocket-Logs in der Browser-Konsole.

    Gruß
    Wolfram

    Einen Kommentar schreiben:

Lädt...
X