Ankündigung

Einklappen
Keine Ankündigung bisher.

SmartHomeNG Release v1.8.1

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

    #46
    Dank Bernd für die schnelle Reaktion


    Ich habe etwas Probleme mit

    smarthome.py --start oder --stop -d -s

    es hilt nur noch dsa smarthome-py -r

    Nach dem ps ax | grep smarthome.py

    Code:
    [smarthome@R42SmartHomeNG ~]$ ps ax | grep smarthome.py
    832 ? Sl 5:07 python3 /usr/local/smarthome/bin/smarthome.py -r
    5197 ? Sl 21:20 python3 bin/smarthome.py -r
    5415 ? Sl 5:17 python3 /usr/local/smarthome/bin/smarthome.py --start
    12752 pts/4 S+ 0:00 grep --color=auto smarthome.py
    13003 ? Sl 0:26 python3 /usr/local/smarthome/bin/smarthome.py -r
    13028 ? Sl 1:06 /usr/bin/python3 /usr/local/smarthome/bin/smarthome.py
    17650 ? Sl 0:21 python3 /usr/local/smarthome/bin/smarthome.py -r
    21463 ? Sl 1:08 python3 /usr/local/smarthome/bin/smarthome.py --start
    [smarthome@R42SmartHomeNG ~]$
    Nachtrag, ja da ist das Problem. Ich habe immer mit dem --start noch einmal nachgelegt.

    Aber der ganze Erfolg ist es noch nicht.

    Code:
    2021-02-15 19:31:40 WARNING lib.smarthome.main -------------------- Init SmartHomeNG 1.8.1.master (84873f74) --------------------
    2021-02-15 19:31:40 WARNING lib.smarthome.main Running in Python interpreter 'v3.7.3 final', from directory /usr/local/smarthome
    2021-02-15 19:31:40 WARNING lib.smarthome.main - on Linux-5.10.11-v7l+-armv7l-with-debian-10.8 (pid=1114)
    2021-02-15 19:31:41 WARNING lib.smarthome.main - Nutze Feiertage für Land 'DE', Provinz 'BY', 2 benutzerdefinierte(r) Feiertag(e) definiert
    2021-02-15 19:31:43 WARNING lib.module Not loading module Mqtt from section 'mqtt': Module is disabled
    2021-02-15 19:31:48 ERROR lib.db DB-API import failed for "pymysql": No module named 'pymysql' - module installed?
    2021-02-15 19:31:48 ERROR plugins.database Initialization of database API failed
    2021-02-15 19:31:48 ERROR lib.plugin Plugins: Plugin 'database' initialization failed, plugin not loaded
    2021-02-15 19:31:48 ERROR lib.smarthome Unhandled exception: 'str' object has no attribute 'keys'
    <class 'AttributeError'>
    File "/usr/local/smarthome/bin/smarthome.py", line 275, in <module>
    sh.start()
    File "/usr/local/smarthome/lib/smarthome.py", line 615, in start
    self.plugins = lib.plugin.Plugins(self, configfile=self._plugin_conf_basename)
    File "/usr/local/smarthome/lib/plugin.py", line 119, in __init__
    plugin_name, self.meta = self._get_pluginname_and_metadata(plugin, _conf[plugin])
    File "/usr/local/smarthome/lib/plugin.py", line 221, in _get_pluginname_and_metadata
    meta = Metadata(self._sh, (plugin_name+plugin_version).replace('.',os.sep), 'plugin')
    File "/usr/local/smarthome/lib/metadata.py", line 142, in __init__
    self._itemdeflist = list(self.itemdefinitions.keys())

    die plugin.yaml dazu :

    Code:
    database_mysql:
        plugin_name: database
        # instance: nas
        precision: 4
        driver: pymysql
        connect:
            - host:localhost
            - user:root
            - passwd:smarthome
            - db:smarthome
            - port:3306
    Zuletzt geändert von bmx; 15.02.2021, 20:30.

    Kommentar


      #47
      Naja, das zeigt eigentlich nur, das Du mehrere Instanzen von SHNG am Laufen hast.
      Es ist aber eigentlich wie beim Highlander: Es kann nur einen geben

      Lösung:

      Alle Instanzen müssen erstmal weg, Du hast zuviele gestartet.

      Auf der shell hilft ein kill -9 <process id>

      Dann kannst Du SHNG einmal starten und abwarten. Solltest Du wiederum mehrere Instanzen bekommen, mußt Du erstmal feststellen warum.
      (z.B. Hast Du eventuell SHNG mal als root gestartet und daher falsche Zugriffsrechte?)

      Kommentar


        #48
        Hallo zusammen,

        habe gestern auch auf 1.8.1 aktualisiert. Gab es eine Änderung wie die Autogenerator-Items aufgebaut werden müssen? Ich nutze die Variante für Faule mit der automatischen "item" Ersetzung, damit ich nicht jedes Mal den Item-Pfad angeben muss. Bei der Erzeugung der nav_aside Widgets kommt aber etwas komisches raus, da werden die Raumnamen stattdessen verwendet, das meckert auch das Log an. Ich habe das neue smartvisu Plugin aktiv.

        Hier ein Beispiel, gilt analog für alle meine anderen Items mit nav_aside Widgets:
        Code:
        eg:
            gaestebad:
                name: Gästebad
                sv_page: room
                sv_img: scene_toilet_alternat.svg
                sv_nav_aside: "{{ basic.print('item', 'item.rtr.ist', '°C') }}"
                sv_nav_aside2: "{{ basic.symbol('item2', 'item.deckenleuchte', '', icon1~'light_light.png') }}"
        Generiert wird in der rooms_menu.html:
        Code:
        <li data-icon="false">
        <a href="index.php?page=room.Gästebad">
        <img class="icon" src="{{ icon0 }}scene_toilet_alternat.svg" />
        
        <h3>Gästebad</h3>
        <div class="ui-li-aside">{{ basic.print('room.Gästebad', 'room.Gästebad.rtr.ist', '°C') }}<br/>{{ basic.symbol('room.Gästebad2', 'room.Gästebad.deckenleuchte', '', icon1~'light_light.png') }}</div>
        </a>
        </li>
        Erwartet hätte ich statt z.B. room.Gästebad.deckenleuchte eg.gaestebad.deckenleuchte

        So ist es auch auf den Raumseiten in den Widgets generiert. Dort werden auch die Widgets angezeigt, die nav_aside-Widgets bleiben jedoch leer.

        Im Log steht:
        Code:
        2021-02-16 22:11:05 ERROR modules.websocket prepare_monitor: No item 'room.Gästebad.rtr.ist' found
        2021-02-16 22:11:05 ERROR modules.websocket prepare_monitor: No item 'room.Gästebad.deckenleuchte' found
        Mache ich irgendwas falsch oder ist da irgendwo noch ein Bug drin?

        Danke & Gruß
        Dominik

        Kommentar


          #49
          Schau mal in den develop branch bzw hier
          https://knx-user-forum.de/forum/supp...in#post1617159

          Kommentar


            #50
            Ich habe mir etwas eingefangen und finde es nicht.
            Alle plugins und Items schon durch sucht!

            Wo kann ich einen Debug einbauen um das Problem zu lösen. Leider gibt es in den Fehlermeldungen keinen (für mich verständlichen) Hinweis.

            Gerne liefere ich weitere Daten zur Klärung! Sehe aber leider nicht den Ansatz.
            Git soeben für smarthome und plugins vor den Start ausgeführt.

            Hier ist wohl der Knackpunkt:

            2021-02-17 14:02:13 ERROR lib.smarthome Unhandled exception: 'str' object has no attribute 'keys'

            Danke für jede Hilfestellung!

            Code:
            2021-02-17 14:02:06 WARNING lib.smarthome.main -------------------- Init SmartHomeNG 1.8.1.master (84873f74) --------------------
            2021-02-17 14:02:06 WARNING lib.smarthome.main Running in Python interpreter 'v3.8.6 final', from directory /usr/local/smarthome
            2021-02-17 14:02:06 WARNING lib.smarthome.main - on Linux-5.10.11-v7l+-armv7l-with-glibc2.28 (pid=3844)
            2021-02-17 14:02:06 WARNING lib.smarthome.main - Nutze Feiertage für Land 'DE', Provinz 'BY', 3 benutzerdefinierte(r) Feiertag(e) definiert
            2021-02-17 14:02:13 ERROR lib.smarthome Unhandled exception: 'str' object has no attribute 'keys'
            <class 'AttributeError'>
            File "/usr/local/smarthome/bin/smarthome.py", line 275, in <module>
            sh.start()
            File "/usr/local/smarthome/lib/smarthome.py", line 615, in start
            self.plugins = lib.plugin.Plugins(self, configfile=self._plugin_conf_basename)
            File "/usr/local/smarthome/lib/plugin.py", line 120, in __init__
            plugin_name, self.meta = self._get_pluginname_and_metadata(plugin, _conf[plugin])
            File "/usr/local/smarthome/lib/plugin.py", line 222, in _get_pluginname_and_metadata
            meta = Metadata(self._sh, (plugin_name+plugin_version).replace('.',os.sep), 'plugin')
            File "/usr/local/smarthome/lib/metadata.py", line 143, in __init__
            self._itemdeflist = list(self.itemdefinitions.keys())

            Kommentar


              #51
              Wie sieht denn Deine etc/plugin.yaml aus?

              Kommentar


                #52
                Hallo Bernd,
                hier meine etc/plugin.yaml


                Ungenutzte Einträge rausgelöscht, KNX und OW hängen noch am alten System.
                smartvisu ist aufrufbar, allerdings Fehlermeldung kein websocket. Keine knx und ow-Daten, aber das ist ja klar!

                Code:
                %YAML 1.1
                ---
                #database:
                #    plugin_name: database
                #    driver: sqlite3
                #    connect:
                #    -   database:./var/db/smarthomeng.db
                #    -   check_same_thread:0
                
                #knx:
                #    plugin_name: knx
                ##    plugin_enabled: True
                ##    host: 127.0.0.1
                ##    port: 6720
                #    send_time: 600     # update date/time every 600 seconds, default none
                #    time_ga: 0/7/0    # default none
                #    date_ga: 0/7/1    # default none
                ##    busmonitor: on    # log all knx messages, default off
                ##    readonly: False   ## don't write to knx bus, default False
                
                cli:
                    plugin_name: cli
                    plugin_enabled: False
                    ip: 0.0.0.0
                    #port: 2323
                    update: True
                    hashed_password: 1245a9633edf47b7091f37c4d294b5be5a9936c81c5359b16d1c4833729965663f1943ef240959c53803fedef7ac19bd59c66ad7e7092d7dbf155ce45884607d
                
                weather_darksky:
                    class_name: DarkSky
                    class_path: plugins.darksky
                    key: b158462ff8ea6xx,,,xx5aad59241ae
                    latitude: '48.60794391'
                    longitude: '11.56989634'
                    lang: de
                    cycle: '600'
                
                
                database_mysql:
                    plugin_name: database
                    instance: nas
                    precision: 4
                    driver: pymysql
                    connect:
                      - host:localhost
                      - user:smarthome
                      - passwd:smarthome
                      - db:smarthome
                      - port:3306
                
                wp:
                    plugin_name: aaeigwp
                
                
                ow:
                    plugin_name: onewire
                    host: 127.0.0.1
                    port: 4304
                    cycle: 900
                    log_counter_cycle_time: 5
                
                # Autogenerierung von Webseiten für SmartVISU UND Aktivierung des Nutzdatenprotokolls über Websocket für die smartVISU
                smartvisu:
                    plugin_name: smartvisu
                    smartvisu_dir: /var/www/html/smartvisu
                    generate_pages: False
                    #overwrite_templates: True
                    #visu_style: blk
                    #default_acl: rw
                    #handle_widgets: True
                    list_deprecated_warnings: True
                
                #stateengine:
                #    plugin_name: stateengine
                #    log_level: 2
                #    log_directory: var/log/stateengine/
                #    startup_delay_default: 120
                #    suspend_time_default: 10800
                #    laststate_name_manually_locked: gesperrt
                #    laststate_name_suspended: ausgesetzt
                #    log_maxage: 1
                
                
                
                
                #fb1:
                #    plugin_name: avm
                ##    class_path: plugin.avm
                #    username: admin    # optional
                #    password: 'xyxy7590'
                #    host: fritz.box
                #    port: 49443
                #    cycle: 300
                #    ssl: True    # use https or not
                #    verify: false    # verify ssl certificate
                #    call_monitor: 'True'
                ##     call_monitor_incoming_filter: "...    ## optional, don't set if you don't want to watch only one specific number with your call monitor"
                #    avm_identifier: fritzbox_7590
                
                # boxcar:
                
                uzsu:
                    plugin_name: uzsu
                Zuletzt geändert von schloessl; 17.02.2021, 17:32.

                Kommentar


                  #53
                  Das sieht aus, als versuchst Du ein Plugin mit ungültigen Metadaten zu laden.

                  Was ist aaeigwp denn für ein Plugin?

                  Ansonsten jeweils den Abschnitt für ein Plugin auskommentieren und neu starten (bis der Fehler weg ist). Dann hast Du das verursachende Plugin gefunden.
                  Viele Grüße
                  Martin

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

                  Kommentar


                    #54
                    Danke für die Hilfen,
                    Durch das selektive Einschalten der Plugins konnte ich das aaeigwp-Plugin als Übertäter eingrenzen.
                    Das ist ein Plugin Eigenbau. Seit 3 Jahren schreibe ich aus einer Exceldatei Werte in eine eigene MySQL—Datenbank.
                    Die Version hat jetzt einige shNG-Versionen überlebt.
                    Jetzt habe ich keine Ahnung was/woher Keys plötzlich kommen?
                    Wo finde ich eine Erklärung oder ein Plugin-Muster um mein Plugin anzupassen?
                    Es ist recht einfach, exceldatei lesen und die Daten in eine MySQL-Tabelle schreiben

                    Nur die „keys“ sagen mir leider nichts! (???)
                    Es gab mal ein Muster zur Plugin-Erstellullung, danach habe ich damals gebastelt.

                    Danke für jede Hilfe
                    ,

                    Kommentar


                      #55
                      Es gibt ein Muster Plugin unter dev/sample_plugin zu finden. Und in der Doku findest Du Sachen zur Plugin Entwicklung. Da wird auch drin stehen was zu Keys wichtig ist. Da ich oben nichts zu aaeigwp gefunden habe vermute ich, das Du das bereits rausgenommen hast.

                      Kommentar


                        #56
                        Du hast das Plugin mit „plugin_name“ eingebunden. Dann müssen die Metadaten stimmen. Mit „class_path“ und „class_name“ solltest Du auch weiterhin ein classic Plugin einbinden können. Besser ist es aber, das Plugin auf ein SmaetPlugin umzustellen, wie bmxp beschrieben hat.
                        Viele Grüße
                        Martin

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

                        Kommentar

                        Lädt...
                        X