NEWS
Solaredge mit Modbus
-
Hallo erst mal,
ich habe im iobroker den Modbus installiert und die IP-Adresse und Port vom Solaredge-WR eingegeben.
Die Verbindung ist da, aber die dritte Ampel nicht grün.
Modbus funktioniert, da ich z.B. mit solaranzeige Daten angezeigt bekomme.
Kann mir jemand einen Tipp oder die Lösung dazu geben?
Gruß
Andreas -
Deine Angaben sind leider zu wenig .
Ich kann nur raten ,
fragst du auch das Register ab , bzw hast etwas eingetragenWie und was hast du in der Instanz konfiguriert ,Screenshots dazu
Hast du im Log Fehler , diese dann hier posten , aber in Code-Tags </>Modbus funktioniert, da ich z.B. mit solaranzeige Daten angezeigt bekomme.
Schalte die Modbus-Verbindung dazu aus , was ist dann .
-
Vielen Dank für deine Antwort.
Die Verbindung zu solaranzeige ist nicht mehr vorhanden.
Folgender Fehler wird angezeigt:modbus.0 2021-10-04 10:50:21.853 warn On error: {"errno":"ECONNREFUSED","code":"ECONNREFUSED","syscall":"connect","address":"192.168.1.21","port":502} modbus.0 2021-10-04 10:50:21.852 error Client in error state. modbus.0 2021-10-04 10:50:21.850 error Socket Error
In der Anlage noch Fotos von der Konfiguration.
Ich habe jetzt erst nur ein Register eingetragen, da ich gelesen habe, dass es nicht funktioniert, wenn kein Register eingetragen ist. -
@anbima sagte in Solaredge mit Modbus:
ECONNREFUSED
Da ist ein Verbindungsfehler , Stimmt auch der Port ?
Von ioBroker aus , prüfe mal mit :
nc -zv 192.168.1.21 502
( NC ist vom Linux Programm NETCAT , wenn es nicht geht dann nachinstallieren)
und hier den Haken raus:
Das Input Register löschen :
und nur in Holding-Register kommen die Abfragen ,
hier die Werte :https://forum.iobroker.net/topic/6403/solaredge-adapter-photovoltaikanlage/226
-
Super, danke.
Es lag an dem "Use aliases".
Jetzt ist es grün.Ich möchte zwei Shelly Plug S Steckdosen schalten, wenn eine bestimmte Leistung am Solaredge überschritten ist. Weiterhin möchte ich die Werte angezeigt bekommen. Bei den Instanzen ist shelly.0 auf grün.
Wie muss ich da jetzt weiter vorgehen?
-
Schreib Dir ein Blockly in dem Du den Powerwert abfragst und dann entsprechend den Datenpunkt "Switch" im Shelly Adapter auf "wahr" setzt.
-
@joergh said in Solaredge mit Modbus:
Schreib Dir ein Blockly in dem Du den Powerwert abfragst und dann entsprechend den Datenpunkt "Switch" im Shelly Adapter auf "wahr" setzt.
Ich bin hier wirklich ganz neu und habe keine Ahnung, wie ich das machen muss.
Mit der Beschreibung komme ich auch nicht weiter.Gibt es hier eine step-by-step Beschreibung oder kann mir es einer der Reihe nach erläutern.
Das wäre wirklich sehr nett.
-
Na dann herzlich willkommen in der Smarthome Welt. Hier gibt es viel zu lernen.
Grundsätzlich legen ioBroker Adapter Datenpunkte an, die man in "Objekte" finden kann. Dort siehst Du die ausgelesenen Werte der Geräte etc.
Für Deinen Solar Edge WR hat er diverse Punkte angelegt, die Du Dir dann mal anschauen solltest, z.B. wird es da sowas wie "Power" oder ähnliches geben, in dem er angibt, wie viel Leistung die PV Anlage gerade bringt. Den willst Du ja auch in Deiner Logik verwenden.
Weiter gibt es durch den Shelly Adapter Datenpunkte, bei denen auch einer dabei sein dürfe der "Switch" heißt. Den kann man dann mit "wahr" oder "falsch" beschreiben und somit etwa schalten. Wenn Du etwas schalten willst, dann brauchst Du dafür eine Logik um die Verknüpfung herzustellen, entweder gibt es Adapter, die das bereits mit einer einfachen Oberfläche bereitstellen oder Du musst Dir selber die Logik basteln. Hier empfiehlt sich Blockly, eine grafische Oberfläche zum Pogrammieren von logischen Verknüpfungen etc.
Ich empfehle Dir mal auf Youtube oder im Netz nach Blockly zu suchen, da gibt es hilfreiche Tutorials wie das funktioniert. Ist nicht sehr schwer und bei konkreten Problemen bekommt man hier auch immer Hilfe.In etwa so müsste das aussehen:
-
Wie kann ich herausfinden, ob es hier einen Adapter für die Logik gibt?
Bei der Shelly kann ich keinen Schalter finden. Müsste ich diesen auch in der Ansicht "Objekte" schalten können?Hier mal ein Screenshot:
-
Das sind die Datenpunkte des Shelly. Du musst aber mal den "Relay 0" Ordner aufklappen, da findest Du den Switch den Du nutzen kannst. Der Shelly an sich kann keine eigene Logik.
-
Und wo gebe ich dann die Funktionen ein, welche mit Blockly erstellt werden?
-
Ok, habs gefunden.
Bei mir war bei den Instanzen javascript.0 gestartet, aber es wurde im Menü nicht angezeigt. Ich habe es dann gelöscht und neu installiert und dann wurde es auch nach dem Start auch grün angezeigt.Ist das bei den Instanzen jetzt so in Ordnung, oder läuft da noch was nicht Richtig?
Ich habe auch Scripte angelegt.
Sind die automatisch aktiv, wenn diese gestartet sind, oder muss ich hier noch einen Zeitplan oder was anderes machen?Ich habe jetzt einmal das einschalten und das ausschalten:
Ist das jetzt so alles korrekt, oder muss ich noch mehr machen?
-
Du musst immer mit einem Trigger arbeiten, damit die Programme sozusagen bei Eintreten gestartet werden. Also wie von mir oben gezeigt einen Trigger auswählen, dann bspw. als ObjectID im Trigger "Total Real Power..." auswählen und bei "geändert" wird das Programm dann immer aufgerufen, also jedesmal wenn sich dieser Wert ändert. Man kann das aber sinnvollerweise auch auf einen Zeitplan umstellen (anderes Triggersymbol) und dort dann z.B. mal alle 5 min. eintragen, dann wird das Programm alle 5 Minuten aufgerufen und mithilfe Deiner Prüfung dann eben etwas ausgelöst.
P.S.: Die beiden Blöcke musst Du noch direkt hintereinanderhängen...
-
Ok, verstanden.
Mit dem hintereinanderhängen meinst du, dass ich die zusammen in den einen Trigger nehme?Die Instanzen aus dem Screenshot sind so korrekt?
-
Ich meine, dass Du die beiden Falls Abfrageblöcke zu einem Flow zusammenhängst. Alles muss dann von dem Zeitplan umschlossen sein, aber keine Unterbrechung darin sein.
Ja, Javascript läuft. Du hast ja auch schon in Blockly geschrieben...
-
Ich habe jetzt alles entsprechend angepasst, aber es funktioniert nicht richtig.
Die Steckdose wird immer eingeschaltet, auch wenn der Wert auf negativ ist.So schaut es derzeit aus:
M_AC_Power ist bei Einspeisung positiv und wenn Strom bezogen wird negativ (ein Minus-Zeichen vorne dran).
Kann es daran liegen, dass der Wert (800) als Textfeld eingegeben ist?
Oder was kann es sein? -
Ich habe jetzt mal eine Test-Variable mit dazu genommen, mit welcher ich den Wert manuell ändern kann. Wenn ich hier die Werte entsprechend ändere, schaltet die Steckdose korrekt.
Ich vermute, dass die Abfrage mit dem Wert vom Modbus nicht zurecht kommt.
Was kann ich machen? -
Ja, Du vergleichst hier einen Zahlenwert mit einem String, das geht so nicht. Nimm "Mathematik" statt "Text" und dort die Zahl von ganz oben. Die änderst Du auf den gewünschten Wert.
-
Wenn ich es so mache, wie es jetzt ist, kann ich die Zahl von "Mathematik" nicht einfügen. Das Feld wird an dieser Stelle nicht zugelassen.
Ich habe dann die "rote" Objekt-ID genommen und da kann ich die Zahl einfügen. Aber es funktioniert trotzdem nicht.
So habe ich es jetzt.
Was muss ich ändern?
-
Jetzt stimmt das mit der Zahl, nur musst Du halt noch den Wert des Datenpunktes vorne einfügen, statt des "Objekt ID". Objekt ID ist immer ein Platzhalter und kein Wert an sich. Der richtige Baustein dafür ist unter System zu finden.
Den vorne einfügen, dann auf "ID auswählen" klicken und den richtigen Wert aus der geöffneten Liste der Objekte auswählen, dann klappt es auch.
Schau Dir am besten mal ein wenig Blockly Tutorials an oder andere Beispiele....