Ankündigung

Einklappen
Keine Ankündigung bisher.

Hoymiles HM800 via Ahoy-DTU an SmarthomeNG - Datenaufzeichnung

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

    Hoymiles HM800 via Ahoy-DTU an SmarthomeNG - Datenaufzeichnung

    Hallo Forenmitglieder,

    ich habe mir ein BKW zusammengestellt und dazu einen ESP mit Ahoy-DTU geflasht. Die Selbstbaulösung kann ja keine Daten loggen und visualisieren.
    Daher dachte ich daran dies an SmarthomeNG zu leiten.
    Gibt es dafür schon ein Plugin oder wie mache ich das?

    SmarthomeNG 1.9.3 auf Raspbian bullseye
    SmartVISU 3.3.1
    knxd 0.14.39
    1-wire owserver-3.2p4

    ich habe _keinen_ Broker für MQTT aktiviert (da ich nicht weiß was dies ist)

    Vielen Dank

    #2
    Ich kannte Ahoy-DTU bisher nicht. Ich habe kurz in die Doku geschaut und festgestellt, dass Du wohl lernen musst was MQTT ist.

    Kurz gesagt: MQTT ist das wohl verbreiteteste Protokoll im IOT Umfeld.
    Du musst also:
    1. Einen MQTT Broker installieren und konfigurieren (Die Installlation von Mosquitto ist in der SmartHomeNG Doku beschrieben)
    2. Das MQTT Protokoll selbst in SmartHomeNG konfigurieren (also das MQTT Modul konfigurieren)
    3. Das Payload Protokoll von MQTT entsprechend der Doku von Ahoy-DTU konfigurieren (also die Topics in den entsprechenden Items) - Dafür muss das mqtt Plugon konfiguriert sein.
    Genaueres findest Du in der SmartHomeNG Doku und im Blog auf www.smarthomeng.de
    Viele Grüße
    Martin

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

    Kommentar


      #3
      Guten Morgen,

      vielen Dank für die schnelle Hilfe.
      Das heißt SmarthomeNG hat selbst keinen Listener für MQTT, sonder nur ein Modul um dieses weiterverarbeiten zu können.
      Hast Du Informationen zu Punkt 3? Ich frage deshalb weil einmal von MQTT Modul und einmal als MQTT Plugin gesprochen wird.

      LG

      Kommentar


        #4
        Das MQTT Modul ist der eigentliche MQTT Client (was Du wohl als Listener bezeichnest). Das ist in dem Modul zusammengefasst, da mehrere Plugins das MQTT Protokoll nutzen (shelly, tasmotal, mqtt, ...) und es nicht zielführend wäre, wenn jedes Plugin das MQTT Protokoll selber implementieren müsste.

        Zu Punkt 3 Musst Du in nach der passenden Ahoy-DTU Doku suchen.

        Wie oben schon beschrieben:
        Das MQTT Modul implementiert das eigentliche MQTT Protokoll (wie von IBM definiert). Das ist aber nur die Transportschicht. MQTT definiert nicht die genaue Client-Adressierung (Topics) und das Format der Nutzdaten (Payload), die darüber transportiert werden.

        Das Format der Nutzdaten wird von den einzelnen Clients (Shelly, Tasmota, ...) festgelegt. Dieses Nutzdaten Protokoll wird in den jeweiligen Plugins implementiert. Das mqtt Plugin ist ein generisches Plugin, bei dem Du die MQTT Topics und Payloads frei definieren kannst ohne selbst ein Plugin schreiben zu müssen.

        Hast Du mal einen Blick auf den Blog Artikel https://www.smarthomeng.de/neuerunge...arthomeng-v1-7 geworfen?
        Zuletzt geändert von Msinn; 28.06.2023, 09:43.
        Viele Grüße
        Martin

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

        Kommentar


          #5
          Da habe ich schon mal mehr verstanden:
          Der Server (Listener) ist nicht direkt in SmarthomeNG eingebaut, sondern wird extra installiert und konfiguriert (wie bei anderen auch, bsp knxd oder 1-wire)
          Das Modul in SmarthomeNG ist quasi die Schnittstelle, und das plugin die Verarbeitung.

          Habe nun:
          * pip aktualisiert
          * numpy aktualisiert
          * mosquitto als MQTT Server installiert
          * apt-get update && apt-get upgrade; reboot
          * apt-get distupgrade
          * SmarthomeNG und Smarthome NG plugins aktualisiert (1.9.5), MQTT Modul aktiviert
          * in AHOY DTU die IP Adresse des Mosquitto servers konfiguriert.

          Nun muss ich dann noch irgendwie die einkommenden Daten "verarbeiten" (MQTT Topics und Payloads)

          inverter/version 0.6.9
          inverter/device AHOY-DTU
          inverter/ip_addr 192.168.178.240
          inverter/mqtt connected
          inverter/HM800/available 2
          inverter/HM800/last_success 1687959343
          inverter/HM800/ch1/YieldDay 790
          inverter/HM800/ch1/YieldTotal 0.799
          inverter/HM800/ch2/YieldDay 776
          inverter/HM800/ch2/YieldTotal 2.096
          inverter/HM800/ch0/YieldDay 1566
          inverter/HM800/ch0/YieldTotal 2.895
          inverter/status 2
          inverter/total/YieldTotal 2.895
          inverter/total/YieldDay 1566
          inverter/sunrise 1687922510
          inverter/sunset 1687981463
          inverter/comm_start 1687922510
          inverter/comm_stop 1687981463
          inverter/dis_night_comm true
          inverter/comm_disabled false
          inverter/comm_dis_ts 1687959355
          inverter/uptime 552
          inverter/wifi_rssi -53
          inverter/free_heap 192508


          Sind die Werte nun als Items zu definieren?

          LG

          Kommentar


            #6
            Jawohl.

            z.B.

            Code:
            Inverter_Device:
                    type: str
                    mqtt_topic_in: inverter/device
            Inverter_Version:
                    type: str
                    mqtt_topic_in: inverter/version
            Inverter_MQTT:
                    type: str
                    mqtt_topic_in: inverter/mqtt
            Inverter_Yield_Total:
                    type: num
                    mqtt_topic_in: inverter/total/YieldTotal
            usw.

            Voraussetzung ist wie oben schon geschrieben die Konfiguration des MQTT Moduls UND das Einbinden und Aktivieren des MQTT Plugins.

            Kommentar


              #7
              beste!

              Vielen Dank an das Forum, die Anbindung ging ja wirklich schnell und unkompliziert.

              Hatte mqtt_topic_init anstatt mqtt_topic_in definiert.

              Hat das vllt. jemand als struct?

              Frage: Was war Dein Grund in den item Gross/Kleinschreibung zu nutzen?

              Kommentar


                #8
                Weiterhin musst Du evtl. den Broker (Mosquitto) noch konfigurieren. Je nach der Version von Mosquitto welche Du installiert hast, lässtg der Broker in der Standardkonfiguration keine anonymen Verbindungen zu. Dann kannst Du entweder im Broker entsprechende User/Passwords für alle MQTT Clients einrichten oder den Broker so konfigurieren, dass er anonyme Verbindungen zulässt.

                Btw.: Du sprichst immer von einem Listener. Den Begriff gibt es bei MQTT nicht. Es gibt nur Clients und den Broker (die zentrale Kommunikationsdrehscheibe mit dem alle Clients kommunizieren). SmartHomeNG ist aus MQTT Sicht ein normaler Client, wie auch Dein ESP.
                Viele Grüße
                Martin

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

                Kommentar


                  #9
                  Zitat von pbaumann Beitrag anzeigen
                  Was war Dein Grund in den item Gross/Kleinschreibung zu nutzen?
                  Keiner. Reine Gewohnheit.

                  Kommentar


                    #10
                    ja, wenn man aus der Netzwerkwelt / Serverwelt kommt ist das ein Dienst der auf einem Port lauscht, also ein listener 😀

                    netstat -an

                    Wie baut man ein struct in SmarthomeNG? Wenn es da Beispiel code für gibt (bsp uzsu) versuche ich es mal mit zwei linken Händen. Wäre dann ja ein plugin, richtig?
                    Zuletzt geändert von pbaumann; 01.07.2023, 07:34.

                    Kommentar


                      #11
                      Zitat von pbaumann Beitrag anzeigen
                      ja, wenn man aus der Netzwerkwelt / Serverwelt kommt ist das ein Dienst der auf einem Port lauscht, also ein listener 😀
                      Dann ist ja fast alles ein Listener. Auch SamrtHomeNG

                      Zu den structs:

                      Du brauchst dafür kein Plugin zu erstellen. Hast Du mal einen Blick auf diesen Teil der Doku geworfen?

                      Es ist jedoch möglich, mit Plugins structs auszuliefern, die man mit dem Plugin verwenden kann. Dazu werden die structs dann in den Metadaten des jeweiligen Plugins gespeichert, wie hier beschrieben.
                      Viele Grüße
                      Martin

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

                      Kommentar

                      Lädt...
                      X