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

  • SMarcus
    antwortet
    Code:
    2022-01-20 23:09:20 NOTICE lib.smarthome -------------------- Init SmartHomeNG 1.9.0.master (985af52b) --------------------
    2022-01-20 23:09:20 NOTICE lib.smarthome Running in Python interpreter 'v3.9.2 final', from directory /usr/local/smarthome
    2022-01-20 23:09:20 NOTICE lib.smarthome - on Linux-5.10.0-10-amd64-x86_64-with-glibc2.31 (pid=2409)
    2022-01-20 23:09:20 NOTICE lib.smarthome - Loglevel NOTICE is set to value 31 because handler of root logger is set to level WARNING or higher - Set level of handler 'shng_warnings_file' to 'NOTICE'!
    2022-01-20 23:09:20 ERROR lib.shpypi test_requirements: 'pyworxcloud' not installed, any version needed
    2022-01-20 23:09:20 WARNING lib.shpypi Installing plugin requirements for the current user, please wait...
    2022-01-20 23:09:20 WARNING lib.shpypi > using PIP command: '/usr/bin/pip3'
    2022-01-20 23:09:22 ERROR lib.shpypi ERROR: Invalid requirement: 'pyworxcloud= 1.3.0' (from line 56 of requirements/conf_all.txt)
    Hint: = is not a valid operator. Did you mean == ?
    
    2022-01-20 23:09:22 CRITICAL lib.smarthome Python package requirements for configured plugins are not met and unable to install those requirements
    2022-01-20 23:09:22 CRITICAL lib.smarthome Do you have multiple Python3 Versions installed? Maybe PIP3 looks into a wrong Python environment. Try to configure pip_command in etc/smarthome.yaml
    2022-01-20 23:09:22 CRITICAL lib.smarthome Aborting
    Hätte ich pip3 statt pip als Uninstall-Kommando verwenden sollen?


    Code:
    Jan 20 23:11:34 smartserver-2 systemd[1]: smarthome.service: Main process exited, code=exited, status=1/FAILURE
    Jan 20 23:11:34 smartserver-2 systemd[1]: smarthome.service: Failed with result 'exit-code'.
    Jan 20 23:11:34 smartserver-2 systemd[1]: smarthome.service: Consumed 4.763s CPU time.
    Jan 20 23:11:34 smartserver-2 systemd[1]: smarthome.service: Scheduled restart job, restart counter is at 144.
    Jan 20 23:11:34 smartserver-2 systemd[1]: Stopped SmartHomeNG daemon.
    Jan 20 23:11:34 smartserver-2 systemd[1]: smarthome.service: Consumed 4.763s CPU time.
    Jan 20 23:11:34 smartserver-2 systemd[1]: Starting SmartHomeNG daemon...
    Jan 20 23:11:36 smartserver-2 python3[2924]: Daemon PID 2925
    Jan 20 23:11:36 smartserver-2 systemd[1]: Started SmartHomeNG daemon.
    Gruß
    Marcus

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Uups,

    shNG tot ? - irgendwelche Einträge in Log-Files

    Code:
    cat /usr/local/smarthome/var/log/smarthome-warnings.log
    
    oder
    
    sudo cat /var/log/syslog
    Das ist schon sehr mysteriös ?

    Gruss Andre

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Ja, könnte hinkommen. Hier die pyworxcloud Version:

    Code:
    Name: pyworxcloud
    Version: 1.4.11
    Summary: Worx Landroid API library
    Home-page: https://github.com/mtrab/pyworxcloud
    Author: Morten Trab
    Author-email: morten@trab.dk
    License: MIT
    Location: /home/smarthome/.local/lib/python3.9/site-packages
    Requires: paho-mqtt, pyOpenSSL, ratelimit
    Required-by:
    Ich habe jetzt die "requirements.txt" im plugin-Verzeichnis geändert auf
    Code:
    pyworxcloud = 1.3.0
    Anschliessend SHNG service beendet und pyworxcloud (Version: 1.4.11) deinstalliert:
    Code:
    pip unistall pyworxcloud

    Und seit dem startet SHNG nicht mehr.....😭 Komplett tot. Help....



    Gruß
    Marcus

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hallo,

    henfri

    nach einigem hin und her überlegen denke ich das Problem gefunden zu haben.
    Wir (henfri und ich) haben pyworxcloud Version 1.3.0 (mit asyncio). Nachdem Marcus das plugin gezogen hat und die requirements installiert wurden hat
    er sicherlich den aktuellen Stand 14.11 (ohne asyncio). Die requirements sind mit Versionsangabe >= 1.3.0

    Das vielleicht nochmal gegen checken mit

    Code:
    pip show pyworxcloud
    Das sieht bei mir so aus :

    Code:
    Name: pyworxcloud
    Version: 1.3.0
    Summary: Worx Landroid API library
    Home-page: https://github.com/mtrab/pyworxcloud
    Author: Morten Trab
    Author-email: morten@trab.dk
    License: MIT
    Location: /home/smarthome/.local/lib/python3.8/site-packages
    Requires: paho-mqtt, pyOpenSSL
    Required-by:
    Für erste Versuche kann man eventuell die "alte" Version in der requirements.txt vorgeben.
    Falls dann die "alte" Version installiert wird sollte es funktionieren.

    Soll heißen :
    in der "requirements.txt" im plugin-Verzeichnis den Eintrag wie folgt ändern
    von
    Code:
    pyworxcloud >= 1.3.0
    auf
    Code:
    pyworxcloud = 1.3.0
    Aus meiner Sicht würde ich auf pyworxcloud komplett verzichten - das was pyworxcloud liefert kann man ohne Problem im Plugin einbauen.
    Leider musste ich schon zu oft feststellen, dass "tolle" Pakete nicht supported wurden und man am Ende doch alles selbst machen muss.
    Gerade bei solchen "Spezial-Paketen" würde ich eher darauf bauen es selbst zu machen.

    Gruss Andre

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Am Sonntag kann ich Mal die funktionierende init posten.

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Jupp, ganz sicher....

    Code:
    from lib.model.smartplugin import *
    from lib.item import Items
    
    from .webif import WebInterface
    import sys
    
    # from _operator import or_
    # from builtins import True
    
    
    import asyncio
    import pyworxcloud
    import time
    Gruß,
    Marcus

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hi SMarcus ,

    bist Du sicher das du

    Code:
    from _operator import or_
    from builtins import True
    gelöscht hast und nicht

    Code:
    import asyncio
    das sollte bleiben.
    Ansonsten muss ich mir das heute Abend nochmal anschauen.

    Gruss Andre

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Hi Andre,

    in dem Fall kommt eine Fehlermeldung etwas später:

    Code:
    2022-01-20 13:25:30 ERROR lib.plugin Plugin 'landroid' exception in run() method: object bool can't be used in 'await' expression
    > Traceback (most recent call last):
    > File "/usr/local/smarthome/lib/plugin.py", line 675, in run
    > self.plugin.run()
    > File "/usr/local/smarthome/plugins/landroid/__init__.py", line 119, in run
    > self.worx_init()
    > File "/usr/local/smarthome/plugins/landroid/__init__.py", line 212, in worx_init
    > asyncio.get_event_loop().run_until_complete(self.l ogon())
    > File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    > return future.result()
    > File "/usr/local/smarthome/plugins/landroid/__init__.py", line 226, in logon
    > self.auth = await self.worx.initialize(self.user,self.pwd)
    > TypeError: object bool can't be used in 'await' expression

    Gruß
    Marcus

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hi SMarcus ,

    da hat mir meine Eclipse-IDE wieder einmal einen Streich gespielt. Die ergänzt hin und wieder bei den Imports automatisch irgendwelchen Blödsinn.

    Lösche in der __init__.py die Zeilen 34+35 dann sollte alles gut sein.

    Gruss Andre

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Danke Euch. Bei der positiven Rückmeldung hab ich es gleich mal von https://github.com/Andrek01/landroid installiert.

    Umgebung:
    SmartHomeNG Version:1.9.0.master (985af52b)
    SmartHomeNG Plugins Version:1.9.0.master (4c010472)
    Python Version: 3.9.2 final
    Betriebssystem: Debian GNU/Linux 11 (bullseye)
    Hardware: Intel Atom x5-Z8350 CPU @ 1.44GHz


    Requirements wurden von SHNG beim Restart installiert:
    Code:
    2022-01-20 10:25:10 ERROR lib.shpypi test_requirements: 'pyworxcloud' not installed. Minimum v1.3.0 needed
    2022-01-20 10:25:10 WARNING lib.shpypi Installing plugin requirements for the current user, please wait...
    2022-01-20 10:25:10 WARNING lib.shpypi > using PIP command: '/usr/bin/pip3'
    2022-01-20 10:25:22 WARNING lib.shpypi plugin requirements installed
    2022-01-20 10:25:22 NOTICE lib.smarthome -------------------- SmartHomeNG restarting, initiated by SmartHomeNG (Python package installation) ------
    aber dann folgt eine Fehlermeldung im nächsten Restart:
    Code:
    2022-01-20 10:25:34 ERROR lib.plugin Plugin 'landroid' exception during import of __init__.py: invalid syntax (__init__.py, line 35)
    > Traceback (most recent call last):
    > File "/usr/local/smarthome/lib/plugin.py", line 547, in __init__
    > exec("import {0}".format(classpath))
    > File "<string>", line 1, in <module>
    > File "/usr/local/smarthome/plugins/landroid/__init__.py", line 35
    > from builtins import True
    > ^
    > SyntaxError: invalid syntax
    wobei der ^ in der zweitletzten Zeile unter dem 'T' von True steht und nicht wie dargestellt am Anfang der Zeile.


    Ich schau gleich mal in die __init__.py, bin aber programmiertechnisch doch sehr semiprofessionell unterwegs.😰

    Hilft Euch das beim debuggen?

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    Ich bin gerade unterwegs.
    Ich habe nur Kosmetik gegenüber deinem Stand geändert. Sobald ich zurück bin kann ich Mal einen PR vorbereiten.
    ToDo meinerseits wäre noch ein Update/Test mit der aktuellen Version von pyworxcloud die auch offiziell kein asyncio mehr braucht.

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hi SMarcus ,

    da spricht sicherlich nichts dagegen (das plugin hat als requirement lediglich die pywordcloud) - sollte eigentlich das was es kann - "out of the box" - liefern.
    Das Plugin ist aber eben noch im Status "proof of concept". Kaputt machen kannst Du nichts, eher weiterentwickeln
    Unterstützung sicherlich willkommen.
    Eventuell kann Hendrik schon was Neues berichten ?

    Viele Grüsse
    Andre

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Hallo Andre und Hendrik,

    grade versuche ich seit Tagen den Fehler in der bisher eingesetzten virtualzone/landroid-bridge zu finden (die über MQTT angebunden ist aber nicht mehr maintained wird), da lese ich zufällig daß Ihr für SHMG ein Landroid-Plugin erstellt habt? Echt jetzt.... wie cool ist das denn.

    Ich habe den Mäher jetzt seit 4 Jahren und das Ding ist einfach nur super zuverlässig, seit dem ich den Akku etwas getuned habe. Ich würde die Anbindung an SHNG ungern vermissen....

    Das Plugin ist 'Proof of Concept'? Spricht aus eurer Sicht etwas dagegen das unter SHNG 1.9.0 auf Debian Bullseye mit Py 3.9 einzusetzen?

    Gruß
    Marcus

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo Andre,

    danke für deinen Tipp.
    Der Grund, weshalb ich das nicht über das pip package mache ist dieser:
    https://github.com/MTrab/pyworxcloud/issues/4

    "meine" Version von pyworxcloud hat kein asyncio (mehr). Upstream ist das noch nicht so.
    Oder gibt es hier eine Alternative?

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hallo henfri ,

    da es zu pyworxcloud ein pip package gibt würde ich das package in die requirements.txt aufnehmen. Es wird dann beim Start von shng automatisch installiert

    und der Import kann im plugin einfach mittels
    Code:
    import pyworxcloud
    erfolgen. (Kann man in der smarthome-details.log beim Start verfolgen)

    Die requirements.txt sieht bei mir dann so aus :

    Code:
    pyworxcloud >= 1.3.0
    Gruss Andre

    P.S.: habe es so getestet und funktioniert, zumindest bei mir :-)

    Einen Kommentar schreiben:

Lädt...
X