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

  • henfri
    antwortet
    Den Fehler hab ich auch. Plugin funktioniert hier dennoch.

    Sind das die einzigen Fehler, die du noch hast?

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Hallo Hendrik,

    - requirements.txt: pyworxcloud == 1.4.13
    - __init__.py: aus Deiner landroid.zip
    - plugin.yaml: aus Deiner landroid.zip


    Code:
    2022-05-16 19:27:46 WARNING plugins.landroid authentication was succesfull logged in
    2022-05-16 19:27:48 ERROR pyworxcloud.worxlandroidapi Error: API endpoint doesn't exist
    Noch irgendetwas, was geändert werden muss?

    Gruß
    Marcus

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,
    Zitat von SMarcus Beitrag anzeigen
    hattest Du das bei Dir erfolgreich getestet? Ich habe das gerade implementiert, allerdings ist der Fehler in etwas abgewandelter Form nach wie vor da:
    na, anders ist nur der Server auf dem dein Landroid gerade gehostet ist.
    Vergleich mal dein plugin.yaml und deine __init__.py mit meiner aus diesem Post.

    Gruß,
    Hendrik
    Angehängte Dateien

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo nochmal,

    ich benutzte pyworxcloud 1.4.13.
    Anbei mal meine plugin.yaml mit o.g. Änderung und einer __init__.py mit einer angepassten _set_childitem()
    Code:
        def _set_childitem(self, itemname, value ):
            """
            a shortcut function to set an item with a given value if it exists
            :param itemname:
            :param value:
            :return:
            """
            item = self.items.return_item(self.parent_item + '.' + itemname)  
            if (item != None):
                item(value, self.get_shortname())
            else:
                self.logger.info("API provides '{}' but no item '{}' exists.".format(value, self.parent_item+'.'+itemname))
    macht aber nix anderes als die Log-Meldung zu ändern.

    Bezüglich der pyworxcloud-Version:
    Hier ist euere Mithilfe nötig.
    einfach die ältere Version nutzen wird dann schiefgehen, wenn Worx etwas an der API ändert und dies eine neue pyworxcloud-Version bedarf. Dann hängen wir noch auf der alten Version.
    Da die neue Version in HomeAssistant genutzt wird, wird es nicht an pyworxcloud liegen, sondern am plugin, vermute ich.
    Ich habe ja oben gezeigt, wie man den Fehler debuggt.
    Edit: Ist ja einfach/gleiches Problem: Jemand muss nur die plugin.yaml um die neuen/zusätzlichen Items erweitern.

    Gruß,
    Hendrik
    Angehängte Dateien
    Zuletzt geändert von henfri; 16.05.2022, 18:17.

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    hattest Du das bei Dir erfolgreich getestet? Ich habe das gerade implementiert, allerdings ist der Fehler in etwas abgewandelter Form nach wie vor da:

    Code:
    2022-05-16 19:10:00 WARNING plugins.landroid Could not set item 'worx._worx_mqtt_endpoint' to 'a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com'
    2022-05-16 19:10:07 WARNING plugins.landroid Could not set item 'worx._worx_mqtt_endpoint' to 'a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com'
    2022-05-16 19:10:08 WARNING plugins.landroid Could not set item 'worx._worx_mqtt_endpoint' to 'a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com'
    2022-05-16 19:10:24 WARNING plugins.landroid Could not set item 'worx._worx_mqtt_endpoint' to 'a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com'
    2022-05-16 19:10:35 WARNING plugins.landroid Could not set item 'worx._worx_mqtt_endpoint' to 'a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com'
    Gruß
    Marcus

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    kurz gesagt: Das Plugin ist noch nix für jemanden der "gerne testen" mag, sondern eher etwas für jemanden der "gerne debuggen" mag.
    2022-05-16 15:57:16 WARNING plugins.landroid Could not set item 'worx.mqtt_endpoint' to 'iot.eu-west-1.worxlandroid.com'
    Das Problem lässt sich durch einen Blick in den Code ja einfach bestimmen:
    Code:
            item = self.items.return_item(self.parent_item + '.' + itemname)  
            if (item != None):
                item(value, self.get_shortname())
            else:
                self.logger.warning("Could not set item '{}' to '{}'".format(self.parent_item+'.'+itemname, value))
    Wenn es also o.g. Fehler gibt, dann muss item==None sein.

    Also findet
    Code:
    self.items.return_item(self.parent_item + '.' + itemname)
    nix.
    Also gibt es worx.mqtt_endpoint nicht.

    Eine Änderung in der plugin.yaml könnte das ändern:
    Zeile 168 alt:
    Code:
            _worx_mqtt_endpoint:
                 type: str
    Zeile 168 neu:
    Code:
            mqtt_endpoint:
                 type: str
    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Zitat von SMarcus Beitrag anzeigen
    Die icons findest Du in Andre's Github (s. Post #40) unter landroid/plugins/sv_widgets/icons/sw/ bzw. ..../ws/.
    Ich wusste doch dass ich die irgendwo gesehen habe. Danke

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Zitat von Sipple Beitrag anzeigen
    Mit der pyworxcloud Version 1.4.19 war noch größeres Chaos. Da kam ständig:
    Kann ich bestätigen. pyworxcloud Version 1.4.11 scheint die letzte zu sein mit der das Plugin arbeitet.

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Die icons findest Du in Andre's Github (s. Post #40) unter landroid/plugins/sv_widgets/icons/sw/ bzw. ..../ws/.

    Falls Du allerdings das Plugin 'smartvisu' verwendest (zur automatischen Seitenerstellung) und folgenden Fehler erhälst:
    Code:
    IsADirectoryError: [Errno 21] Ist ein Verzeichnis: '/usr/local/smarthome/plugins/landroid/sv_widgets/icons'
    lass es mich wissen.

    Gruß
    Marcus

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    SMarcus Gut (bzw. schlecht), dann ist das erstmal kein "internes Problem". Ich habe es auch grad wieder abgedreht. Alle 10s ist dann doch etwas zu häufig.



    Mit der pyworxcloud Version 1.4.19 war noch größeres Chaos. Da kam ständig:

    Code:
    2022-05-16 15:46:47 WARNING plugins.landroid authentication was succesfull logged in
    2022-05-16 15:46:48 WARNING plugins.landroid Error while getting update from MQTT-Service
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.mqtt_endpoint' to 'iot.eu-west-1.worxlandroid.com'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.rain_delay_time_remaining' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.rain_sensor_triggered' to 'False'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_sunday_2_start' to '00:00'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_sunday_2_duration' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_sunday_2_boundary' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_monday_2_start' to '00:00'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_monday_2_duration' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_monday_2_boundary' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_tuesday_2_start' to '00:00'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_tuesday_2_duration' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_tuesday_2_boundary' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_wednesday_2_start' to '00:00'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_wednesday_2_duration' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_wednesday_2_boundary' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_thursday_2_start' to '00:00'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_thursday_2_duration' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_thursday_2_boundary' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_friday_2_start' to '00:00'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_friday_2_duration' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_friday_2_boundary' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_saturday_2_start' to '00:00'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_saturday_2_duration' to '0'
    2022-05-16 15:46:48 WARNING plugins.landroid Could not set item 'worx.schedule_day_saturday_2_boundary' to '0'
    2022-05-16 15:46:48 ERROR pyworxcloud.worxlandroidapi Error: API endpoint doesn't exist
    2022-05-16 15:46:48 WARNING plugins.landroid Problem while parsing weather
    2022-05-16 15:46:55 ERROR pyworxcloud.worxlandroidapi Error: API endpoint doesn't exist
    2022-05-16 15:46:55 WARNING plugins.landroid Problem while parsing weather

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Noch was: In der Beispiel-Page gibt es Referenzen auf Icons, die es auch in der SV3.2.2 (noch) nicht gibt. Als da wären

    scene_robo_lawnmower_start.svg
    scene_robo_lawnmower_stop.svg
    scene_robo_lawnmower_dock.svg
    scene_robo_lawnmower_moving.svg

    Hat die wer und könnte sie gepackt hier reinstellen? Danke schon mal.

    Gruß, Martin

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Und ich dachte schon ich bin der einzige bei dem das Problem auftritt....

    Habe gerade heute eine kurze Info an henfri und AndreK gesendet. Das Problem scheint seit dem 12. Mai aufzutreten. Mein erster Gedanke war daß Worx den Server geändert hat - allerdings ist das Problem ausserhalb von SHNG nicht bekannt.

    Ich musste das Plugin erstmal stillegen, da die Warning-Logs alle 10s auftreten und damit alles vollschreiben.

    Wie gesagt, henfri und AndreK wissen bescheid. Ich hoffe die können das fixen.

    Gruß
    Marcus
    Zuletzt geändert von SMarcus; 16.05.2022, 15:27.

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Servus

    So, mein Landroid mäht.
    Jetzt habe ich mal schnell auf meinem Testsystem das Plugin eingebaut.
    SHNG ist 1.8.2.master
    pyworxcloud ist die 1.4.11 (gibt auch schon 1.4.19, das ging aber irgendwie gar nicht, habe also downgegraded)
    Im Log steht nun:

    Code:
    2022-05-16 15:56:17 WARNING lib.smarthome.main -------------------- SmartHomeNG restarting, initiated by admin interface --------------------
    2022-05-16 15:56:54 WARNING lib.smarthome.main -------------------- Init SmartHomeNG 1.8.2.master (0f462a1e) --------------------
    2022-05-16 15:56:54 WARNING lib.smarthome.main Running in Python interpreter 'v3.7.3 final', from directory /usr/local/smarthome
    2022-05-16 15:56:54 WARNING lib.smarthome.main - on Linux-5.10.17-v7l+-armv7l-with-debian-10.12 (pid=16426)
    2022-05-16 15:56:54 WARNING lib.smarthome.main - Nutze Feiertage für Land 'DE', Provinz 'BY', 1 benutzerdefinierte(r) Feiertag(e) definiert
    2022-05-16 15:57:01 WARNING lib.smarthome.main -------------------- SmartHomeNG initialization finished --------------------
    2022-05-16 15:57:02 WARNING plugins.landroid authentication was succesfull logged in
    2022-05-16 15:57:04 WARNING plugins.landroid Could not set item 'worx.mqtt_endpoint' to 'iot.eu-west-1.worxlandroid.com'
    2022-05-16 15:57:04 WARNING plugins.landroid Weather returned False
    2022-05-16 15:57:12 WARNING plugins.landroid Weather returned False
    2022-05-16 15:57:16 WARNING plugins.landroid Could not set item 'worx.mqtt_endpoint' to 'iot.eu-west-1.worxlandroid.com'
    2022-05-16 15:57:16 WARNING plugins.landroid Could not set item 'worx.mqtt_endpoint' to 'iot.eu-west-1.worxlandroid.com'
    2022-05-16 15:57:26 WARNING plugins.landroid Could not set item 'worx.mqtt_endpoint' to 'iot.eu-west-1.worxlandroid.com'
    2022-05-16 15:57:36 WARNING plugins.landroid Could not set item 'worx.mqtt_endpoint' to 'iot.eu-west-1.worxlandroid.com'
    2022-05-16 15:57:46 WARNING plugins.landroid Could not set item 'worx.mqtt_endpoint' to 'iot.eu-west-1.worxlandroid.com'
    2022-05-16 15:57:56 WARNING plugins.landroid Could not set item 'worx.mqtt_endpoint' to 'iot.eu-west-1.worxlandroid.com'
    2022-05-16 15:58:06 WARNING plugins.landroid Could not set item 'worx.mqtt_endpoint' to 'iot.eu-west-1.worxlandroid.com'
    Das wiederholt sich nun alle 10s.
    Der Login ist offensichtlich korrekt.
    Viele der items werden auch gefüllt.
    Wo kann/soll/muss ich nachsehen, woran das liegen könnte?

    Gruß, Martin

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Hut ab dass ihr da überhaupt was machen konntet. Da ist ja schlicht überhaupt nichts dokumentiert. Weder die API noch pyworxcloud.

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    wir nutzen weiter pyworxcloud um den reverse engineering Aufwand zu sparen.
    Den aktuellen Stand findest du hier:
    https://github.com/Andrek01/landroid...master/plugins
    Gruß,
    Hendrik

    Einen Kommentar schreiben:

Lädt...
X