Ankündigung

Einklappen
Keine Ankündigung bisher.

SmartHomeNG Release v1.7.2

Einklappen
Das ist ein wichtiges Thema.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    SmartHomeNG Release v1.7.2

    ​​​

    Aktuelle Version
    Stand 23. Juni 2020 ist jetzt im master Branch auf Github die Version v1.7.2 als stabile Version von SmartHomeNG verfügbar.
    Nur die Version aus dem master Branch sollte für den produktiven Einsatz benutzt werden!


    Was ist neu in SmartNomeNG v1.7.2?
    Die Neuerungen erstrecken sich über Bugfixes für den Core von SmartHomeNG sowie Änderungen und Bugfixes für diverse Plugins. Es sind auch neue Plugins hinzugekommen. Die aktuellen Release Notes sind unter www.smarthomeng.de zu finden. Bitte auch die vollständigen Release Notes für das Release 1.7 und die Release Notes für das Release 1.7.1 beachten.

    Was ist beim Update auf v1.7.2 zu beachten?
    1. MQTT

      Die Unterstützung des MQTT Protokolls ist mit SmartHomeNG v1.7 in den Core umgezogen. Dadurch kann das Protokoll auch aus Logiken und mehreren Plugins genutzt werden. Dadurch ändert sich die Konfiguration. Ausführliche Informationen zu den Änderungen und zur Konfiguration finden sich auf www.smarthomeNG.de
      ​​​​​​​
    2. database Plugin

      Das Datenbank Plugin wird beim ersten Start einige Zeit benötigen und erhebliche CPU Last produzieren. Das rührt daher, dass das Plugin ab v1.7.2 eine regelmäßige Aktualisierung der Datenbank durchführt und dabei Datensätze löscht, die älter als ein gewisses Alter sind. Da die Datenbank eine größere Zahl älterer und nicht mehr benötigter Datensätze enthält, wird das beim ersten Start einige Zeit in Anspruch nehmen.

      Gesteuert wird diese Datenbank Pflege über ein neues Item Attribut des database Plugins. Das Attribut database_maxage bei einem Item gibt die Anzahl Tage an, die History Daten für das Item in der Datenbank gespeichert werden sollen.

      Items, bei denen das Attribut gesetzt ist, sind:

      - env-Items wie cpu Load, Anzahl Threads, etc. Für diese Items werden die History Daten gelöscht, die älter als 30 Tage sind.

      - Teile der Items des darksky Plugins, wenn die struct Definitionen des Plugins genutzt werden. Hierbei handelt es sich um Vorhersage Daten. Diese Daten werden für 3 Monate aufgehoben. Danach interessiert sicher niemand mehr, ob die Vorhersage von vor 93 Tagen für den Folgetag (also vor 92 Tagen) richtig war

      Alle anderen Daten bleiben unberührt.

      Bei dieser Reorganisation wird die Datenbank nicht kleiner. Es wird aber in der Datenbank freier Platz geschaffen um neue Daten aufzunehmen. Wenn die Datenbank auf der HDD verkleinert werden soll, muss auf die Mittel des verwendeten Datenbank Systems (SQLite bzw. MySQL) zurück gegriffen werden.

    Dokumentation
    Unter https://www.smarthomeNG.de findet sich unser Blog und der Startpunkt für die Dokumentation:Develop Branch
    Es findet eine aktive Weiterentwicklung statt, daher bitte mit einem Produktionssystem nicht auf den Entwicklungszweig gehen!
    Man sollte nur auf den develop Branch gehen, wenn man genau weiß, was man da macht.
    Es kann immer mal passieren, dass der develop branch aufgrund der laufenden Entwicklung in einem nicht lauffähigen Zustand ist.

    Auch ein Mischen vom master Branch und develop Plugins kann, aber muß nicht klappen, da einige Plugins aus dem develop Branch Funktionalitäten des
    Core benötigen könnten, die im master branch noch nicht vorhanden sind. In diesem Fall wird das Plugin nicht laden und einen Log Eintrag schreiben.


    Unterstützung
    Natürlich gibt es hier im Forum Unterstützung. Zusäzlich haben wir auf https://gitter.im/smarthomeNG/smarthome einen Chat für SmartHomeNG eingerichtet. Dort schauen viele User und Entwickler in regelmäßgen Abständen rein.


    Fehlerbehebung
    Bevor ihr postet oder um Hilfe fragt, bitte
    • im Administrations-Interface einen Überblick verschaffen ob z.B. config files richtig im SmartHomeNG ankommen
    • Im Logfile nach Fehlern oder Warnungen suchen und wenn möglich deren Ursachen beseitigen.
    • SmartHomeNG im Debugmodus starten oder besser: Für nur den betroffenen Teil den Log-Level auf INFO oder DEBUG hochsetzen.
    Wenn Ihr Hilfe braucht und nicht weiterkommt werden Euch andere hier im Forum gerne weiterhelfen.

    Wenn ihr dann postet, geizt bitte nicht mit Informationen über eure Installation. Wir können alle nicht Hellsehen. Für uns hilfreich oder sogar notwendig sind unter anderem:
    • Beschreibung was ihr erreichen wollt
    • Erläuterung was ihr bisher gemacht habt
    • Genaue Bescheibung des wahrgenommenen Problems
    • ("Läuft nicht" ist da nicht ausreichend...)
    • Erläuterung welches Verhalten ihr erwartet
    • SmartHomeNG Version
    • Python Version
    • Betriebssystem mit Version
    • eingesetzte Hardware
    • Art der Installation
    • (z.B. Nach Komplettanleitung oder Raspberry Pi Image oder Update von Vorversion oder ...)
    • Konfigurierte Plugins (gerne die etc/plugin.yaml mit posten)
    • gegebenfalls die entsprechenden Item Konfigurationen (aus items/*.yaml)

    Viel Spaß und viel Erfolg mit Eurem SmartHomeNG!!!​
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    #2
    Hallo,


    vielen Dank!
    jentz1986 und ich haben den Docker Container aktualisiert.

    Gruß,
    Hendrik

    Kommentar


      #3
      Danke an alle für die 1.7.2! Update hat soeben einwandfrei funktioniert. Der Start hat übrigens nicht länger gedauert als sonst (wg. DB Plugin).

      Kommentar


        #4
        Hallo zusammen,

        ein Problem habe ich dann doch noch gefunden, nach dem Update auf 1.7.2 im Zusammenhang mit dem Database-Plugin:
        Ich erhalte seit dem Update den Fehler:

        Method: <module>, Exception: 'Item' object has no attribute 'dbplugin'

        Beim Aufruf der Database Plugin Instanz
        Code:
        dbplugin = sh.Haus.strom.PVTagesErtragGesamt_kwh.historisch.dbplugin


        Am Code selbst hat sich nichts geändert.

        Danke für eure Hilfe und Grüße,
        Thomas

        Kommentar


          #5
          Um dazu was sagen zu können, brauche ich mehr Infos (z.B. Die Item Definition.
          So für sich sieht das für mich merkwürdig aus. Was rufst Du da auf? Ich würde in einer solchen Zuweisung erstmal ein () am ende erwarten.

          Gut wäre es auch die komplette Exception Meldung zu haben.
          Viele Grüße
          Martin

          There is no cloud. It's only someone else's computer.

          Kommentar


            #6
            Danke für deine Hilfe. Anbei zusätzliche Infos:

            Die Item Definition:
            Code:
            PVTagesErtragGesamt_kwh:
                type: num
                visu_acl: ro
                database: 'yes'
                cache: 'yes'
                eval: round((sh.Kostal.Inverter.kostal_322() + sh.Kostal.Inverter2.kostalpik_322())/1000,2)
                cycle: 115
                historisch:
                    type: num
                    visu_acl: ro
                    cache: 'yes'
                    database: 'yes'
            Dann ziehe ich mir in einer Logik die Plugin-Instanz um manuell Werte in die Datenbank zu schreiben:
            Code:
            dbplugin = sh.Haus.strom.PVTagesErtragGesamt_kwh.historisch.dbplugin
            
            #Werte für heute setzen
            wert = sh.Haus.strom.PVTagesErtragGesamt_kwh()
            sh.Haus.strom.PVTagesErtragGesamt_kwh.historisch(wert)
            
            time.sleep(5)
            
            dbplugin.insertLog(dbplugin.id(sh.Haus.strom.PVTagesErtragGesamt_kwh.historisch), millis, duration=stunde, val=0.01, it="num", changed=millis, cur=None)
            dbplugin.insertLog(dbplugin.id(sh.Haus.strom.PVTagesErtragGesamt_kwh.historisch), millis+stunde, duration=stunde, val=0.01, it="num", changed=millis+stunde, cur=None)
            dbplugin.insertLog(dbplugin.id(sh.Haus.strom.PVTagesErtragGesamt_kwh.historisch), millis+stunde*2, duration=stunde, val=0.01, it="num", changed=millis+stunde*2, cur=None)
            dbplugin.insertLog(dbplugin.id(sh.Haus.strom.PVTagesErtragGesamt_kwh.historisch), millis+stunde*3, duration=stunde, val=0.01, it="num", changed=millis+stunde*3, cur=None)
            Der Fehler erscheint schon in Zeile 1 des obigen Auszugs.
            Code:
            2020-09-13 10:09:04 ERROR logics.ErtragBerechnen Logic: logics.ErtragBerechnen, File: /usr/local/smarthome/logics/pvertrag.py, Line: 8, Method: <module>, Exception: 'Item' object has no attribute 'dbplugin'
            > Traceback (most recent call last):
            > File "/usr/local/smarthome/lib/scheduler.py", line 590, in _task
            > exec(obj.bytecode)
            > File "/usr/local/smarthome/logics/pvertrag.py", line 8, in <module>
            > dbplugin = sh.Haus.strom.PVTagesErtragGesamt_kwh.historisch.d bplugin
            > AttributeError: 'Item' object has no attribute 'dbplugin'
            Wie schon erwähnt: das hat so monatelang funktioniert. Außer dem Update auf 1.7.2 wurde nichts verändert. (Sommerpause :-))

            danke!

            Kommentar


              #7
              Gefunden!

              Du hast im Moment 2 Möglichkeiten:
              • das database Plugin aus dem develop Branch nutzen
              • in Deiner Installation im database Plugin in der Datei __init__.py nach Zeile 181 folgende Zeile einfügen:
                Code:
                	item.dbplugin = self
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                #8
                cool, vielen Dank für deine Hilfe!
                Wundert mich dass sonst noch keiner ein Problem damit hatte...

                Kommentar


                  #9
                  Hi

                  Ich habe erst kürzlich einen PI4B installiert, als Backup für meinen Hauptserver. Nicht per Image, sondern händisch, nach Komplettanleitung. 1.7.2.master. Alles gut.
                  Jetzt, wo der läuft, habe ich meinen Hauptserver von 1.7.1 auf 1.7.2.master gezogen. Also altes Verzeichnis umbenannt und neu installiert, auch genau nach Anleitung.
                  Jetzt fehlten in /requirements drei Dateien (z.B. base.txt), nur die test.txt war da. Fehlermeldungen beim git clone gab es keine. Alles andere scheint ok zu sein.
                  Grad nachgesehen, was denn auf git im Verzeichnis des Master Branch drin ist und da fehlen die plötzlich auch.

                  git.png
                  Ist das so gewollt? Kann ich mir nicht vorstellen.
                  Was mich stutzig macht: Laut git war die letzte Änderung dort im Juni. Meine letzte komplette Installation auf dem PI war letzte Woche und da waren die Dateien noch vorhanden.

                  Gruß, Martin

                  Kommentar


                    #10
                    Martin, hast Du mal gestartet und dann nachgeschaut?

                    Beim Start von SHNG werden diese Dateien generiert:

                    Code:
                    #   +--------------------------------------------------+
                    #   |                 SmartHomeNG                      |
                    #   |            DON'T EDIT THIS FILE                  |
                    #   |           THIS FILE IS GENERATED                 |
                    #   |              BY lib/shpypi.py                    |
                    #   |            ON 23.06.2020 21:27                   |
                    #   |                                                  |
                    #   |               INSTALL WITH:                      |
                    #   | pip3 install -r requirements/base.txt --user     |
                    #   +--------------------------------------------------+
                    Das ist z.B. der Kopf von requirements/base.txt die beim Test auf Travis-CI vom Master 1.7.2 am 23. Juni erstellt wurde. Mit all.txt verhält es sich genauso.
                    Zuletzt geändert von bmx; 13.10.2020, 12:24.

                    Kommentar


                      #11
                      Ach die werden nicht geklont vom git sondern beim ersten Start selber generiert? Das würde es erklären.

                      Kommentar


                        #12
                        Ja die werden jetzt bei jedem Start von SmartHomeNG generiert und SmartHomeNG installiert die Requirements selbstständig. Die Generierung bei jedem Start stellt sicher, dass die Requirements auch für Plugins installiert werden, die nachträglich hinzu-konfiguriert werden.
                        Viele Grüße
                        Martin

                        There is no cloud. It's only someone else's computer.

                        Kommentar


                          #13
                          Super, danke. Jetzt weiß ich auch was schief ging. Hatte letzte Woche beim RPI Installieren beim ersten Start ne Fehlermeldung, dass die Requirements nicht installiert werden konnten und ich musste manuell machen (wie in der Anleitung steht). Da war diese Autogenerierung anscheinend schon durchgelaufen. Vorhin hatte ich den Erststart vergessen.

                          Kommentar

                          Lädt...
                          X