Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter Growatt v3.3.1

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Test Adapter Growatt v3.3.1

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      Wildbill last edited by

      @moonsorrox Ach so. Ich habe grott in einem LXC unter Proxmox. Ich habe dafür ein Debian11-Template genommen.
      Nach dem obligatorischen

      sudo apt update
      sudo apt upgrade
      

      erst einmal git installiert

      sudo apt install git
      

      Anschließend

      git clone https://github.com/johanmeijer/grott
      

      Damit hast Du die gesamte grott-Struktur 1:1 in Deinem Home-Verzeichnis.
      Noch ein paar Abhängigkeiten

       sudo apt install python3
       sudo apt install python3-pip
       sudo pip3 install paho-mqtt
       sudo pip3 install requests
      

      Danach

      cd grott/
      nano grott.ini 
      

      und die passend editieren.
      Mittels

      python3 grott.py -v
      

      zum Testen starten. Wenn der Stick dann auf die IP des LXC umgestellt wurde, sollten Daten ankommen und auch per MQTT im iobroker landen, wenn das eingerichtet ist.
      Dann die Datei grott.service nach /etc/systemd/system/grott.service kopieren und editieren

      sudo cp grott.service /etc/systemd/system/grott.service
      sudo nano /etc/systemd/system/grott.service
      

      Darin folgendes anpassen (Pfad entsprechend Deinem USER bzw. wohin du git clone gemacht hast):

      WorkingDirectory=/home/USER/grott/
      ExecStart=-/usr/bin/python3 -u /home/USER/grott/grott.py -v
      
      sudo systemctl daemon-reload
      sudo systemctl enable grott
      sudo systemctl start grott
      

      und es sollte im Hintergrund als service laufen und auch nach einem restart automatisch starten.
      Ich hoffe, ich habe nichts vergessen.

      Gruss, Jürgen

      M chucky666 3 Replies Last reply Reply Quote 0
      • W
        warp735 last edited by warp735

        @wildbill

        Super Anleitung 👍

        Aber da ist:

        docker run -d -p 5279:5279 --restart on-failure -e gmqttip="192.168.0.206" ledidobe/grott
        

        doch erheblich einfacher 😁

        W 1 Reply Last reply Reply Quote 0
        • M
          moonsorrox @Wildbill last edited by

          @wildbill
          Ok vielen Dank werde ich gleich mal antesten

          1 Reply Last reply Reply Quote 0
          • W
            Wildbill @warp735 last edited by

            @warp735 Das schon, aber nur, wenn Du Docker schon installiert hast. 😊
            Wobei ich sagen muss, dank Proxmox nehme ich oft auch LXC anstatt Docker. Ist dann doch manchmal praktischer und einfacher, wenn man direkt in der Fileebene ist, anstatt vorher irgendwelche Ordner reinmappen zu müssen. Aber glücklicherweise hat man ja unter Linux eher die Qual der Wahl, was man nehmen möchte, anstatt von vornherein wenig Auswahl zu haben...

            Gruss, Jürgen

            1 Reply Last reply Reply Quote 0
            • M
              moonsorrox @Wildbill last edited by

              @wildbill
              Habe vergessen zu fragen weil du sudo benutzt.
              Ich bin ja als root eingeloggt, welchen Benutzer hats du dafür angelegt, weil es sonst ja unter root landet, hast du grott als user genommen.?

              W 1 Reply Last reply Reply Quote 0
              • W
                Wildbill @moonsorrox last edited by Wildbill

                @moonsorrox Natürlich als user. Als root meldet man sich maximal ein einziges Mal an, um einen normalen User zu erstellen und diesen in die Gruppe sudo aufzunehmen. Danach wird sich nur noch per User angemeldet und erweiterte Rechte bei Bedarf (und NUR dann!) per sudo geholt.
                Gilt nicht nur für grott sondern für Linux generell. JEDES. ÜBERALL. IMMER. Auch bei iobroker. 😁

                Gruss, Jürgen

                EDIT: Falls Dir unklar ist, wie man es macht. Einmalig als root anmelden. Dann

                adduser USER
                apt install sudo
                usermod -aG sudo USER
                exit
                

                Ab da dann als USER anmelden. USER natürlich durch Deinen Namen erstetzen oder was Du da stehen haben willst. sudo muss nachinstalliert werden, kommt im Debian11-Template nicht mit.
                Und das sollte man so in jedem Linux, egal ob baremetal, VM, LXC oder Docker-Ct so handhaben!

                M 1 Reply Last reply Reply Quote 0
                • M
                  moonsorrox @Wildbill last edited by

                  @wildbill
                  Ja OK super das ist schon klar ich dachte nur das grott einen bestimmten User haben will, ist ja manchmal der Fall

                  1 Reply Last reply Reply Quote 0
                  • M
                    moonsorrox last edited by moonsorrox

                    OK also ich habe das mal genauso gemacht und hänge wieder an der selben Stelle wie schon einmal.
                    Wenn ich die grott.ini editieren soll ist die bei mir leer

                    Ich bin mit cd grott/ in das Verzeichnis und nano grott.ini

                    wenn ich jetzt mal in das Verzeichnis schaue finde ich die grott.ini unter

                    /home/growatt/grott/examples/grott.ini
                    

                    wird das auch funktionieren.? nee geht leider nicht ich komme nicht an die ini ran

                    W 1 Reply Last reply Reply Quote 0
                    • W
                      Wildbill @moonsorrox last edited by Wildbill

                      @moonsorrox Kopier die grott.ini aus dem examples-Ordner in den grott-Ordner direkt und editier da und es passt.

                      Gruss, Jürgen

                      Edit: Punkt 4 von Hier

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        moonsorrox @Wildbill last edited by moonsorrox

                        @wildbill

                        EDIT:// OK habe ich jetzt gelesen Punkt 4
                        wollte ich gerade fragen..!
                        denn wenn ich mich als root einlogge kann ich mit

                        nano home/growatt/grott/examples/grott.ini
                        

                        die ini Datei editieren

                        W 1 Reply Last reply Reply Quote 0
                        • W
                          Wildbill @moonsorrox last edited by

                          @moonsorrox Die muss direkt im grott-Ordner liegen.

                          Gruss, Jürgen

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            moonsorrox @Wildbill last edited by

                            @wildbill
                            OK das habe ich gemacht, wenn ich jetz die Abfrage mache

                            python3 grott.py -v
                            

                            steht Growatt logging monitor : 2.6.1h
                            Grott process configuration file

                            Grott process environmental variables

                            Grott override settings if set in commandline

                            Grott process json layout files

                            Grott layout records loaded

                            dann extrem viele Werte oder was auch immer das ist. Ganz am Ende kommen die Settings

                            Grott settings:
                            
                            _Generic:
                                    version:         2.6.1h
                                    verbose:         True
                                    trace:           False
                                    config file:     grott.ini
                                    minrecl:         100
                                    decrypt:         True
                                    compat:          False
                                    invtype:         default
                                    include_all:     False
                                    blockcmd:        False
                                    noipf:           False
                                    time:            auto
                                    sendbuf:         True
                                    timezone:        local
                                    valueoffset:     6
                                    offset:          6
                                    inverterid:      automatic
                                    mode:            proxy
                                    grottip          default
                                    grottport        5279
                            _MQTT:
                                    nomqtt           False
                                    mqttip:          10.0.0.50
                                    mqttport:        1883
                                    mqtttopic:       energy/growatt
                                    mqttinverterintopic:     False
                                    mqtttauth:       False
                                    mqttuser:        grott
                                    mqttpsw:         **secret**
                            _Growatt server:
                                    growattip:       47.91.67.66
                                    growattport:     5279
                            _PVOutput:
                                    pvoutput:        True
                                    pvurl:           https://pvoutput.org/service/r2/addstatus.jsp
                                    pvapikey:        yourapikey
                                    pvinverters:     1
                                    pvsystemid:      systemid1
                            _Influxdb:
                                    influx:          False
                                    influx2:         False
                                    database:        grottdb
                                    ip:              localhost
                                    port:            8086
                                    user:            grott
                                    password:        **secret**
                                    organization:    grottorg
                                    bucket:          grottdb
                                    token:           **secret**
                            _Extension:
                                    extension:       False
                                    extname:         grottext
                                    extvar:          {'none': 'none'}
                            
                            
                            Grott proxy mode started
                            Traceback (most recent call last):
                              File "/home/growatt/grott/grott.py", line 33, in <module>
                                proxy = Proxy(conf)
                              File "/home/growatt/grott/grottproxy.py", line 55, in __init__
                                self.server.bind((conf.grottip, conf.grottport))
                            OSError: [Errno 98] Address already in use
                            

                            Wo sehe ich jetzt im ioBroker die Daten sollte da nicht irgendwo grott auftauchen.?

                            W 1 Reply Last reply Reply Quote 0
                            • chucky666
                              chucky666 @Wildbill last edited by

                              @wildbill danke für die Anleitung
                              Funktioniert die Shine Handy App weiterhin ?

                              1 Reply Last reply Reply Quote 0
                              • W
                                Wildbill @moonsorrox last edited by

                                @moonsorrox Hast Du in iobroker den MQTT-Adapter als Server laufen und die IP in der grott.ini eingetragen? Oder verwendest Du einen externen MQTT-Server wie z.B. mosquitto. Die IP 10.0.0.50 und der Port 1883 die Du eingetragen hast, muss Deinem MQTT-Server entsprechen. Und der Stick muss natürlich die IP von Deinem grott-Server bekommen. Reboote auch mal den Container. Ich vermute, Du hast den Service bereits aktuv, denn unten bekommst Du ja eine Fehlermeldung, dass die Adresse bereits in Gebrauch ist. Grott per Befehl starten zum Testen geht nur, wenn der service steht. Dazu vorher mit

                                sudo systemctl stop grott
                                

                                den Service anhalten. Dann kommt eventuell auch mehr Output.
                                Wenn Du die grott.ini änderst, musst Du auch einmal den service mit

                                sudo systemctl restart grott
                                

                                neu starten, sonst bekommt der die Änderungen nicht mit.
                                Du machst den Befehl

                                python3 grott.py -v
                                

                                auch nicht im Alltagsbetrieb. Der ist nur zum testen, damit man in der Konsole direkt die Ausgabe bekommt. Im Alltag läuft dafür ja der service, da musst Du nach einem reboot nix manuell eingeben.

                                @chucky666 Solange Du grott im Grundzustand verwendest, landen die Daten sowohl auf dem Growatt-Server als auch per MQTT im iobroker. Mit dem oben genannten Umstand, dass bei Ausfall des Growatt-Servers auch per MQTT nix ankommt, da der Stick nur aussendet, wenn er mit dem Growatt-Server verbunden ist. Aber so läuft die App und die Growatt-Server-Website ganz normal weiter.
                                Wenn Du grottserver.y verwendest, dann sendet der Stick nix mehr an Growatt und läuft völlig lokal. Dann ist der Zustand ob der Growatt-Server läuft oder nicht egal, aber dafür hast Du logischerweise auch keine Daten mehr in der App oder Website.

                                Wenn der grott-Server mal nicht läuft, dann landen auch keine Daten mehr bei Growatt, soweit ich das verstanden habe, da grott als Proxy die Daten dahin weiterleitet, der Stick kennt ja nur die IP vom grott-Server.

                                Gruss, Jürgen

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  moonsorrox @Wildbill last edited by moonsorrox

                                  @wildbill said in Test Adapter Growatt v1.0.0:

                                  python3 grott.py -v

                                  jetzt habe ich den Service mal gestoppt und jetzt bekomme ich auch Daten die ich kenne, werde aber den Container nochmal starten, habe ich aber vorhin gemacht.
                                  Hier mal was ich gerade bekomme:

                                  - MQTT jsonmsg: 
                                                           {"device": "QMB39212B4", "time": "2022-09-09T15:11:34", "buffered": "no",
                                                           "values": {"pvstatus": 1, "pvpowerin": 5558, "pv1voltage": 1202,
                                                           "pv1current": 46, "pv1watt": 5558, "pv2voltage": 0, "pv2current": 0,
                                                           "pv2watt": 0, "pvpowerout": 5114, "pvfrequentie": 4998, "pvgridvoltage":
                                                           2373, "pvgridcurrent": 21, "pvgridpower": 5114, "pvgridvoltage2": 0,
                                                           "pvgridcurrent2": 0, "pvgridpower2": 0, "pvgridvoltage3": 0,
                                                           "pvgridcurrent3": 0, "pvgridpower3": 0, "pvenergytoday": 38,
                                                           "pvenergytotal": 33360, "totworktime": 68855617, "pvtemperature": 400,
                                                           "pvipmtemperature": 0, "epv1today": 41, "epv1total": 35430, "epv2today": 0,
                                                           "epv2total": 0, "epvtotal": 35430}}
                                           - MQTT message message sent on topic: energy/growatt
                                           - Grott send data to PVOutput systemid:  systemid1 for inverter:  QMB39212B4
                                                   -  {'X-Pvoutput-Apikey': 'yourapikey', 'X-Pvoutput-SystemId': 'systemid1'}
                                                   -  {'d': '20220909', 't': '15:11', 'v1': 3800, 'v2': 511.4, 'v6': 237.3}
                                           - Grott PVOutput response: 
                                                   -  Unauthorized 401: Invalid System ID
                                           - Grott Send data to Influx disabled 
                                           - Grott extension processing disabled 
                                  
                                           - Growatt packet received:
                                                    <socket.socket fd=5, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('10.0.0.59', 5279), raddr=('10.0.0.9', 11252)>
                                           - Data less then minimum record length, data not processed
                                  
                                           - Growatt packet received:
                                                    <socket.socket fd=4, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('10.0.0.59', 40018), raddr=('47.91.67.66', 5279)>
                                           - Data less then minimum record length, data not processed
                                  

                                  Um deine Frage zu beantworten:
                                  mqtt im ioBroker ist als Client/Subscriber eingetragen weil er sonst nicht startet und grün wird
                                  die IP steht in der grott.ini
                                  10.0.0.50 ist der MQTT Server bei mir in Fhem, also auf einem anderem Device
                                  10.0.0.59 ist der Grott-Server den habe ich am Stick eingetragen, ich habe einen LAN Stick
                                  Ist das jetzt alles so richtig

                                  Ich habe jetzt den Container rebootet, den grott auch wieder gestartet.
                                  Die Werte kommen dann wo im ioBroker an?
                                  Sollten die hier drin stehen
                                  mqtt.0.energy.growatt

                                  Das sieht so aus und mehr is da nicht

                                  {
                                    "_id": "mqtt.0.energy.growatt",
                                    "common": {
                                      "name": "energy/growatt",
                                      "write": true,
                                      "read": true,
                                      "role": "variable",
                                      "desc": "mqtt client variable",
                                      "type": "string"
                                    },
                                    "native": {
                                      "topic": "energy/growatt"
                                    },
                                    "type": "state",
                                    "from": "system.adapter.mqtt.0",
                                    "user": "system.user.admin",
                                    "ts": 1662731179173,
                                    "acl": {
                                      "object": 1636,
                                      "state": 1636,
                                      "owner": "system.user.admin",
                                      "ownerGroup": "system.group.administrator"
                                    }
                                  }
                                  

                                  noch ein Hinweis von mir der Growatt Stick zeigt auch in grün an Connected, also hat er die IP vom grott server und ist damit verbunden.

                                  W 1 Reply Last reply Reply Quote 0
                                  • W
                                    Wildbill @moonsorrox last edited by

                                    @moonsorrox
                                    Die Ausgabe zeigt, dass die Daten korrekt in grott ankommen und auch verarbeitet werden. Dann kannst Du den service starten und laufen lassen.
                                    Wenn 10.0.0.50 Dein FHEM ist, dann kommen die Daten logischerweise auch da an. In FHEM solltest Du sie also bekommen. Ich meine aber, in FHEM musst Du MQTT-Devices manuell anlegen.
                                    Wenn Du sie da hast, kannst Du in iobroker den FHEM-Adapter verwenden, dann hast Du FHEM-Geräte auch in iobroker. Eventuell dem MQTT den Raumnamen iobroker zuweisen, dann wird nur der zu iobroker gesynct.
                                    Ob der MQTT-Adapter von iobroker auch als Client auf den FHEM-MQTT-Server zugreifen kann, weiss ich nicht.
                                    Wenn Du die Daten in FHEM eh nicht brauchst und nur in iobroker, dann verwende in iobroker den MQTT-Adapter als server. Dann unter grott die IP und den Port von iobroker-MQTT eintragen. Nimm nicht 1883 falls Du den Sonoff-Adapter parallel brauchst, sondern 1885 zum Beispiel.
                                    Falls Du den MQTT in iobroker bereits als Client für andere Dinge brauchst, dann installiere eine zweite Instanz und stell die auf server.

                                    Gruss, Jürgen

                                    M 1 Reply Last reply Reply Quote 0
                                    • M
                                      moonsorrox @Wildbill last edited by

                                      @wildbill
                                      ich habe die Daten bisher von Fhem zum ioBroker und auch umgekehrt im ioBroker habe ich sogar zwei Fhem Instanzen weil ich die beide parallel nutze.
                                      Der ioBroker ist bei mir nur eine Art Zwischenspeicher weil der immer den Growatt Adapter (und noch weitere Adapter) hatte die ich in Fhem nutze und ich daher die Daten bekommen habe.

                                      Fhem ist also meine Produktive Hausautomation und hier sollen auch die Werte der PV Anlage ankommen.
                                      Die Daten vom ioBroker und Growatt Adapter habe ich in einem Fhem Raum ioB_IN der wird automatisch erzeugt und es werden mir die Daten vom Growatt Adapter angezeigt, diese mußte ich aber zusammen suchen vom Growatt Adapter in der Form

                                      growatt.0.294937.devices.xxxxxxxxxx.deviceData
                                      

                                      das heißt jetzt ich muss dies gleichen oder ähnlichen Daten vom Grott Server bekommen und diese muss ich beim ioBroker eingeben damit sie bei Fhem ankommen, dass habe ich bisher so in der Art gemacht

                                      fhem.0.info.Configurations.allowedIOBin
                                      

                                      hier dann eintragen wie der Datenpunkt heißt , siehe hier drüber den Wert.
                                      Da ich den grott aber nicht sehe kenne ich natürlich diese nicht, deshalb meine Frage, denn in Fhem ist er nicht weil ich ihn ja nicht eingetragen habe und im Raum Mqtt ist nichts zu sehen.
                                      Verstehst du wie ich das mein.?
                                      Hast mir ja schon gut geholfen und der Grott läuft ja wohl, muss eben noch die Daten suchen. Ich überleg ob ich mir einen Mosquitto installieren als eigenständigen Container ob das nicht besser ist.

                                      W 1 Reply Last reply Reply Quote 0
                                      • W
                                        Wildbill @moonsorrox last edited by

                                        @moonsorrox Wenn Dein MQTT-Server eh in FHEM läuft, dann kommen doch die Daten da an. Wenn das eh Deine Smarthome-Zentrale ist, dann brauchst Du iobroker für Growatt nicht. Grott schickt ja alles direkt zum MQTT-Server. Dann musst Du ja nur in FHEM schauen, ob MQTT da direkt ein Gerät anlegt. Bin nicht sicher, ob autocreate bei MQTT funktioniert. Da müsstest Du dann evtl. im FHEM-Forum mal fragen.
                                        Oder eben einen separaten MQTT-Server aufsetzen wie z.B. mosquitto und dann FHEM und iobroker da als client anmelden. Und natürlich alle MQTT-Geräte dahin senden lassen.
                                        Aber wie gesagt, wenn Du die Growatt-Daten eh nur in FHEM haben willst, kannst Du Dir alles mit iobroker sparen. Das muss dann auch direkt funktionieren.

                                        Gruss, Jürgen

                                        M 1 Reply Last reply Reply Quote 0
                                        • M
                                          moonsorrox @Wildbill last edited by

                                          @wildbill

                                          naja es ist ja entstanden da es in Fhem nicht möglich war Growatt Daten zu bekommen und da war dann der Adapter im ioBroker von Growatt un der hat die Daten eben gesendet.
                                          Wenn jetzt der Grott Server arbeitet bräuchte ich das tatsächlich nicht mehr, ich muss mal den Mqtt Server der in Fhem MQTT2_Server heißt anstoßen... habe autocreate schon eingeschaltet aber bsiher hat er noch nichts.
                                          Ich schau mal und melde mich hier wieder, ob ich es hinbekommen habe.
                                          Aber ich spiele schon eine Weile mit dem Gedanken einen separaten Mosquitto LXC zu installieren und dann alles darüber laufen zu lassen... keine Ahnung ob das dann besser ist.
                                          Dann musss ich die ganzen Sonoffs und Shelly alle den neuen Server geben, aber das ist ne andere Geschichte.

                                          W 1 Reply Last reply Reply Quote 0
                                          • W
                                            Wildbill @moonsorrox last edited by

                                            @moonsorrox Ich habe auch mehrere MQTT-Server parallel laufen. Einen in FHEM, einen mosquitto und einen in iobroker. In iobroker parallel nochals Client für den mosquitto. Und den Sonoff-Adapter für die ganzen Tasmoita-Geräte.
                                            Man muss sich ja nicht auf einen beschränken. Jeder darf das machen und empfangen, was er am besten kann und wo ich die Daten brauche. 😊
                                            Der mosquitto empfängt zusätzlich noch Daten aus dem Internet, da waren mir die anderen beiden zu unsicher.

                                            Gruss, Jürgen

                                            M 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            527
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter growatt pv-anlage shine solar test tester
                                            71
                                            800
                                            298500
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo