Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme nach dem Update auf 1.9.4

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

  • Msinn
    antwortet
    Nein, das sollte nicht behoben werden. Das wirst Du (wie der Log Eintrag sagt) nur lösen können, wenn Du Python 3.8 oder höher nutzt um SmartHomeNG laufen zu lassen.

    Einen Kommentar schreiben:


  • GHild
    antwortet
    Zitat von Msinn Beitrag anzeigen
    In SmartHomeNG läuft das Plugin leider nur mit Python 3.8 oder größer.
    Das wird mit dem Bugif Release behoben. Das Release von v1.9.5 kommt vorraussichtlich am Dienstag.
    Ich habe übrigens die Version 1.9.5 probiert:
    Das Problem mit der Datenbank scheint behoben zu sein, das Problem mit onewire und Python V3.7 besteht weiterhin. Ich bekomme die selbe Fehlermeldung wie zuvor.

    Sollte das behoben sein?

    Einen Kommentar schreiben:


  • GHild
    antwortet
    Danke für die Rückmeldungen.

    Einfach in dem Verzeichnis starten in dem Du es installiert hast?
    Eigentlich naheliegend ;-) Wenn im Code kein absoluter Pfad verwendet wird, sollte es ja klappen, werde ich probieren (ich nutze standardmäßig immer den servcie).
    Vielleicht habe ich diese Möglichkeit gedanklich immer ausgeschlossen, weil laut Anleitung smarthome immer in /usr/local installiert wird.

    Danke auch für den Hinweis auf die BBB-Diskussion. Hatte ich nicht auf dem Schirm, bleibe aber wohl eher bei meiner Lösung der zusätzlichen SD-Karte, insbesondere auch, wenn ich neue smarthome-Versionen parallel installiere und erst teste.





    Einen Kommentar schreiben:


  • bmx
    antwortet
    Zitat von GHild Beitrag anzeigen
    smarthomeNG inkl. Plugins ist schon ziemlich groß geworden
    Du kannst bei git clone die Tiefe angeben mit --depth 1 und somit einen "flachen" clone erzeugen. Das geht sowohl für den Core als auch für die Plugins.

    Das Thema haben wir speziell für den BBB schon mal gehabt, siehe hier

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Zitat von GHild Beitrag anzeigen
    Gibt es hier eine bessere Idee für Tests?
    Einfach in dem Verzeichnis starten in dem Du es installiert hast?

    Du kannst mehrere Installationen nebeneinander haben. Du musst nur aufpassen, dass nur eine Installation zur Zeit läuft.

    Einen Kommentar schreiben:


  • GHild
    antwortet
    Danke für die schnelle Antwort.

    Dann probiere ich es in ein paar Tagen wieder.

    Den Upgrade meines Beagle Bone Black (mit Roberts Cape) werde ich mittelfristig auch angehen.

    Was mir noch aufgefallen ist:
    Ich hatte V1.9.4 in ein neues Verzeichnis

    Code:
    /local/smarthome_194_clean
    installiert und dann einen softlink
    Code:
    /local/smarthome -> /local/smarthome_194_clean
    angelegt.

    Das hat aber zu Problemen geführt:
    Code:
    Exception: 'collections.OrderedDict' object has no attribute 'partition'
    running SmartHomeNG v1.9.4-master (c0cfb39c) / plugins v1.9.4-master (c4ec71ee)
    Traceback (most recent call last):
      File "/local/smarthome_194_clean/lib/plugin.py", line 170, in __init__
        plugin_thread = PluginWrapper(smarthome, plugin, classname, classpath, args, instance, self.meta, self._configfile)
      File "/local/smarthome_194_clean/lib/plugin.py", line 655, in __init__
        exec("self.plugin.__init__(smarthome{0}{1})".format("," if len(arglist) else "", argstring))
      File "<string>", line 1, in <module>
      File "/local/smarthome_194_clean/plugins/database/__init__.py", line 145, in __init__
        self._db = lib.db.Database(("" if self._prefix == ""  else self._prefix.capitalize()) + "Database", self.driver, self._connect)
      File "/local/smarthome_194_clean/lib/db.py", line 178, in __init__
        key, sep, value = arg.partition(':')
    AttributeError: 'collections.OrderedDict' object has no attribute 'partition'
    ​
    Ich wollte Version 1.9.4. erst testen, bevor ich sie produktiv nehme. Über das Umbiegen eines Softlinks funktioniert das aber offensichtlich nicht.

    Gibt es hier eine bessere Idee für Tests?

    SmartHomeNG inkl. Plugins ist schon ziemlich groß geworden und passt nicht mehr in den eMMC des Beagle Bone Black (4GB). Daher habe ich es auf eine SD-Karte ausgelagert (und unter /local gemountet).
    Zuletzt geändert von bmx; 07.04.2023, 06:39. Grund: Schreibfehler korrigiert zum besseren Verständnis und für bessere Suchergebnisse

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    In SmartHomeNG läuft das Plugin leider nur mit Python 3.8 oder größer.
    Das wird mit dem Bugif Release behoben. Das Release von v1.9.5 kommt vorraussichtlich am Dienstag.

    Einen Kommentar schreiben:


  • GHild
    antwortet
    Zitat von Msinn Beitrag anzeigen

    Bei mir und bmx läuft das onewire Plugin. Wie hast Du das onewire Plugin konfiguriert?

    Und kannst Du bitte das Log vom Start bis zu diesem Fehler posten?
    Hallo,

    ich laufe nach dem Update auf 1.9.4 (wegen piratewthr) auch in die oben beschriebenen Probleme, d.h. ständige Neustarts, weil die DB nicht gefunden wird, und Fehler bei OneWire.

    Da ich vor einem Upgrade meines BeagleboneBlack auf Bullseye Respekt habe, wollte ich fragen, ob das Problem mit OneWire evtl auch mit Python 3.7 gelöst werden kann.

    Hier der Auszug aus dem Log-File:

    Code:
    2023-03-24 23:41:45 NOTICE lib.smarthome -------------------- SmartHomeNG stopped --------------------
    2023-03-24 23:42:05 NOTICE lib.smarthome -------------------- Init SmartHomeNG v1.9.4-master (c0cfb39c) --------------------
    2023-03-24 23:42:05 NOTICE lib.smarthome Running in Python interpreter 'v3.7.3 final', from directory /local/smarthome
    2023-03-24 23:42:05 NOTICE lib.smarthome - operating system 'Debian GNU/Linux 10 (buster)' (pid=11544)
    2023-03-24 23:42:05 NOTICE lib.smarthome - on 'Raspberry Pi (Rev. 0000)'
    2023-03-24 23:42:05 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'!
    2023-03-24 23:43:09 NOTICE lib.smarthome - Nutze Feiertage für Land 'DE', Provinz 'HE', 1 benutzerdefinierte(r) Feiertag(e) definiert
    2023-03-24 23:43:36 WARNING plugins.cli CLI: You should set a password for this plugin.
    2023-03-24 23:43:51 ERROR lib.plugin Plugin 'ow' exception during import of __init__.py: invalid syntax (<fstring>, line 1)
    Traceback (most recent call last):
    File "/local/smarthome/lib/plugin.py", line 570, in __init__
    exec("import {0}".format(classpath))
    File "<string>", line 1, in <module>
    File "<fstring>", line 1
    (value=)
    ^
    SyntaxError: invalid syntax
    Und meine Konfig:
    Code:
    ow:
    plugin_name: onewire
    host: 127.0.0.1
    port: 4304
    cycle: 300​
    Irgendwelche Ideen?
    Danke.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Das ist ein Linux spezifisches Verhalten, da dort Verzeichnisnamen case sensitive sind. Unter MacOS oder Windows wäre Dir das Problem nie aufgefallen. Da die alte Konfigurationsform mit class_path und class_name auch case sensitive ist (und die Vorgabe ist, dass Plugin Namen in lowercase zu halten sind) sehe ich eigentlich keinen Änderungsbedarf. Ich habe für das Bugfix Release allerdings eine Warnung eingebaut, falls ein "ungültiger" Plugin Name erkannt wird.

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von Msinn Beitrag anzeigen
    Was mir als erstes aufgefallen ist: Plugin Namen sind in lowercase (wie auch die Verzeichnisnamen der Plugins).
    Seit Jahren habe ich die Namen immer so gehabt. Damit ist das Problem aber nun gelöst.

    Aber macht es nicht Sinn Groß- und Kleinschreibung zu ignorieren?

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Was mir als erstes aufgefallen ist: Plugin Namen sind in lowercase (wie auch die Verzeichnisnamen der Plugins).

    Änderem mal

    Code:
    fb1:
        plugin_name: AVM
    ​
    in

    Code:
    fb1:
        plugin_name: avm
    ​
    Das gleiche gilt für Telegram, iCal, AlexaP3, Pluggit, OpenWeatherMap.

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von Msinn Beitrag anzeigen
    Ich habe eben noch mal in meine conf_all.txt geschaut. Bei mir steht (wie erwartet) lxml drin.
    Bei mir nicht in der conf_all.txt, nur in der all.txt. Ich habe die die Daten per PM geschickt.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Ich habe eben noch mal in meine conf_all.txt geschaut. Bei mir steht (wie erwartet) lxml drin.

    Code:
    ...
    
    # configured plugin 'avm'
    # configured plugin 'sonos'
    lxml
    
    ...
    ​

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Zitat von Cannon Beitrag anzeigen
    Naja für welche plugins die benötigt werden steht doch auch drin. Aber es sind viel zu wenige Pakete, die da drin stehen
    Die Liste in der conf_all ist ein Hinweis und bei weitem nicht Vollständig. Dafür ist die Datei (wie gesagt) auch nicht da.

    Zitat von Cannon Beitrag anzeigen
    Aber wie kann man die conf_all.txt neu erstellen? Es fehlen sehr viele requirements. U.a. auch das "lmxl", was fürs AVM benötigt wird, auch modbus fürs pluggit nicht.
    Die Datei wird bei jedem Start von SmatHomeNG neu erstellt. Dass darin etwas fehlt, was bei den Plugins als Requirement eingetragen ist, ist bisher nicht aufgetreten. Deshalb kann ich dazu so erstmal nichts sagen.

    Um da rein zu schauen, bräuchte ich zum Anfang Deine etc/plugin.yaml, die requirements/conf_all.txt und dir requirements/all.txt. Später benötige ich dann noch weitere Infos.

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von Msinn Beitrag anzeigen
    Was meinst Du damit? in der conf_all.txt sind keine Plugins aufgelistet, sondern benötigte Python Packages, die laut Informationen aus den Plugins benötigt werden.
    Naja für welche plugins die benötigt werden steht doch auch drin. Aber es sind viel zu wenige Pakete, die da drin stehen.

    Zitat von Msinn Beitrag anzeigen
    Mit pip3 kannst Du keine neue conf_all.txt erstellen! Das kann nur SmartHomeNG.
    Ja mein Fehler, ich kann damit nur die requirements installieren.

    Aber wie kann man die conf_all.txt neu erstellen? Es fehlen sehr viele requirements. U.a. auch das "lmxl", was fürs AVM benötigt wird, auch modbus fürs pluggit nicht.

    Einen Kommentar schreiben:

Lädt...
X