NEWS
[Projekt] ioBroker Solarlog Adapter
-
Hallo,
ich benutze einen Solarlog 200 PM+.
Kein Problem nach Installation sichtbar.
Gefällt mir gut.
Danke dafür.
Grüße
-
Hallo,
tolle Arbeit! Einen kleinen Wunsch oder Featurerequest hätte ich noch. Wäre es möglich bei der Eingabe des Hosts/IP den Port frei zu wählen/anzugeben? Der ist anscheinend fest auf 80 gebunden.
-
Hallo Werner
Korrektur: Du kannst es versuchen, gemäss doku sollte der Port aber als separate Option spezifiziert werden. Merke mir das Anliegen für den nächsten Release.
Kannst du bitte einmal versuchen den Port (den gewünschten, von dem du weisst, dass er funktioniert) als Teil det IP, z.B. 192.168.0.100:XXX zu spezifizieren. Vom Adapter her sollte das funktionieren.
Gruss
Marcel
-
Hallo Marcel,
leider funktioniert das nicht anbei ein Auszug aus dem Log:
ERROR ReqDataStandard: getaddrinfo ENOTFOUND 134.19.XX.XX:5000 134.19.XX.XX:5000:80
Es wird immer der Port 80 nochmals hinten angehangen. Der Port ist definitiv offen!
Besten Gruß
Werner
-
Hallo Werner
Ich habe die Port - Wahlmöglichkeit einmal in Code umgesetzt. Die Version 0.1.0 steht auf Github für dich zur Verfügung. Kannst du es von da einmal bei dir im ioBroker installieren. Bei mir funktioniert es, egal ob ich Port 80 eintrage oder nicht.
Danke und Gruss
Marcel
-
Hallo Marcel,
ich bekomme schon mal einen "connect" hin und der Adapter ist grün und es werden die DP angelegt.! Leider keine Werte. Ich hänge mal das Debug Log an:
! solarlog.0 2019-01-18 11:21:32.621 warn ERROR ReqDataStandard: connect EHOSTUNREACH 134.19.xx.xx:80
! solarlog.0 2019-01-18 11:21:32.581 debug Data to request body: {"801":{"170":null}}
! solarlog.0 2019-01-18 11:21:17.598 warn ERROR ReqDataStandard: connect EHOSTUNREACH 134.19.xx.xx:80
! solarlog.0 2019-01-18 11:21:17.565 debug Data to request body: {"801":{"170":null}}
! solarlog.0 2019-01-18 11:21:02.606 warn ERROR ReqDataStandard: connect EHOSTUNREACH 134.19.xx.xx:80
! solarlog.0 2019-01-18 11:21:02.572 debug Data to request body: {"801":{"170":null}}
! solarlog.0 2019-01-18 11:20:47.583 warn ERROR ReqDataStandard: connect EHOSTUNREACH 134.19.xx.xx:80
! solarlog.0 2019-01-18 11:20:47.549 debug Data to request body: {"801":{"170":null}}
! solarlog.0 2019-01-18 11:20:47.548 debug WR nicht Importieren
! solarlog.0 2019-01-18 11:20:47.548 debug uzimp: false
! solarlog.0 2019-01-18 11:20:47.548 debug Data: "{"609":null}"
! solarlog.0 2019-01-18 11:20:47.548 debug Options: {"host":"134.19.xx.xx","port":"5000","path":"/getjp","method":"POST","headers":{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57
! solarlog.0 2019-01-18 11:20:47.548 debug [START] Started Adapter with: 134.19.xx.xx
! solarlog.0 2019-01-18 11:20:47.548 debug [INFO] Configured polling interval: 15000
! solarlog.0 2019-01-18 11:20:47.548 debug uzimp: false
! solarlog.0 2019-01-18 11:20:47.548 debug InvImp: false
! solarlog.0 2019-01-18 11:20:47.548 info [START] Starting solarlog adapter
! solarlog.0 2019-01-18 11:20:47.547 info starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.solarlog, node: v8.15.0
! solarlog.0 2019-01-18 11:20:47.400 debug statesDB connected
! solarlog.0 2019-01-18 11:20:47.387 debug objectDB connectedDanke für deine Mühe.
Besten Gruß
Werner
-
Hallo Werner
Danke fürs testen! Konnte eine wahrscheinliche Fehlerquelle schon mal eliminieren. Jetzt sollte es klappen - was man ja aber eigentlich immer denkt. Kannst du den Adapter nochmals neu von Github installieren bitte.
Lieber Gruss und danke.
Marcel
-
Hallo Marcel,
großes Lob, Klasse! Es funktioniert, vielen Dank.
Besten Gruß und ein schönes Wochenende
Werner
-
Ich habe einen SolarLog 400 verbunden:
Der Datenpunkt info.connection ist true. info.numinv zeigt -1. Alle anderen Datenpunkte bleiben leer.
Debug-Log sieht so aus:
! ````
2019-01-20 14:42:51.093 - debug: solarlog.0 objectDB connected
2019-01-20 14:42:51.143 - debug: solarlog.0 statesDB connected
2019-01-20 14:42:51.327 - info: solarlog.0 starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.solarlog, node: v8.12.0
2019-01-20 14:42:51.331 - info: solarlog.0 [START] Starting solarlog adapter
2019-01-20 14:42:51.333 - debug: solarlog.0 InvImp: false
2019-01-20 14:42:51.333 - debug: solarlog.0 uzimp: false
2019-01-20 14:42:51.334 - debug: solarlog.0 [INFO] Configured polling interval: 300000
2019-01-20 14:42:51.334 - debug: solarlog.0 [START] Started Adapter with: 192.168.1.31
2019-01-20 14:42:51.334 - debug: solarlog.0 Options: {"host":"192.168.1.31","port":"80","path":"/getjp","method":"POST","headers":{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36","Content-Type":"application/json","Accept":"applciation/json","Content-Length":12}}
2019-01-20 14:42:51.334 - debug: solarlog.0 Data: "{"609":null}"
2019-01-20 14:42:51.334 - debug: solarlog.0 uzimp: false
2019-01-20 14:42:51.334 - debug: solarlog.0 WR nicht Importieren
2019-01-20 14:42:51.337 - debug: solarlog.0 Data to request body: {"801":{"170":null}}
2019-01-20 14:42:51.360 - debug: solarlog.0 http Status: 405
2019-01-20 14:42:51.361 - debug: solarlog.0 HEADERS: {}
2019-01-20 14:42:51.367 - debug: solarlog.0 no more date in response
2019-01-20 14:42:51.380 - warn: solarlog.0 JSON-parse-Fehler DataStandard: Unexpected token E in JSON at position 0
2019-01-20 14:42:51.381 - debug: solarlog.0 InvImp= false
2019-01-20 14:42:53.465 - debug: solarlog.0 system.adapter.admin.0: logging true
2019-01-20 14:43:00.003 - info: javascript.0 script.js.common.Stoerungen.Fehler_kritisch_test: hm-rpc.2.info.connection: trueWir der SolarLog 400 nicht unterstützt oder mache ich was falsch?
-
Hallo
Offensichtlich kommt die Verbindung zum Solarlog zustande, dieser ist aber nicht bereit, die angeforderte Antwort zu schicken.
Ich bin weder mit dem 400e noch mit der genannten Firmware vertraut, hab auch kein Handbuch dazu googeln können.
Bedingung für das Funktionieren des Adapters wären solarlogseitig:
-
das Vorhandensein der JSON-Schnittstelle wie sie in den aktuellen Handbüchern beschrieben ist
-
dass die Schnittstelle freigegeben ist (muss im Konfigurationsmenu eingestellt werden)
-
Wenn du noch den Unterzähler-Import nutzen möchtest (was du gemäss Log im Moment noch nicht aktiviert hast) müsstest du auch das Benutzerpasswort deaktivieren.
Das einzige was ich dir von hier aus raten kann, ist die obigen Punkte zu prüfen und mit allenfalls in der Konfiguration deines Solarlogs einzustellenden Berechtigungen zu "spielen", diese also mal zu deaktivieren.
Herzliche Grüsse
Marcel
-
-
Es sieht wohl so aus, dass der SolarLog 400 keine JSON-Schnittstelle hat. Zumindest ist im Datenblatt und im Handbuch nichts davon zu finden.
Zugriff gibt es offensichtlich von außen nur über das Webinterface oder nach außen über einen zyklischen FTP-Export der aktuellen Daten.
Schade.
-
Noch nen kleinen Fehler gefunden:
Wenn der Wechselrichter einen Fehler zeigt (Schnee), entscheidet der Adapter das dieser und alle weiteren Unterverbraucher wohl nicht da sind und ignoriert sie bis auf weiteres
-
Herzlichen Dank für den Hinweis, JackWolfskind.
Ich hab im solarlogschen JSON - Dschungel gewühlt und nun hoffentlich einen zuverlässigeren Geräteindikator gefunden.
Falls du lieber Updates installierst als Schnee von deiner PV-Anlage wischst, steht die neue Version 0.1.2 mit verbesserter Geräteerkennung - hoffentlich schneesicher - auf Github und npm ab sofort zur Verfügung, schon bald wohl auch direkt im ioBroker.
Viel Spass beim testen, hoffentlich funktionierts bei dir auch.
Herzliche Grüsse
forelleblau
-
Vielen Dank für deinen Einsatz!
Ich warte dann mal ob es nochmal schneit
-
Ich habe meinen alten Solarlog 400 nun gegen einen 300er getauscht. Der Adapter funktioniert prime - danke für die Arbeit!
Es gibt jedoch einige Datenpunkte, die ich vermisse - vielleicht gibt sie die JSON Schnittstelle ja auch gar nicht her (Priorität in angegebener Reihenfolge):
- Sollwerte Tag/Monat/Jahr
- Erreichter aktueller Prozentwert vom jeweiligen Soll
- historische Werte, wobei die dann nicht die Tageswerte beinhalten müssten.
Was mein alter 400er noch angezeigt hat, ich aber im 300er gar nicht finde: Prognose in kWh und Prozent bis Ende des Zeitabschnittes (Tag / Monat / Jahr).
Danke und Gruß
Manfred -
Hallo hmanfred
Danke für die Rückmeldung, es freut mich wenn der Adapter auch bei dir funktioniert.
Die Sollwerte habe ich bisher noch nicht ausgelesen, da ich sie aber angezeigt erhalte (SL 1200), sollte ich sie eigentlich auch finden können. Werde mal noch etwas rumwühlen. Die Tages/Monats/Jahreswerte sind auch da.
Die historischen Werte sind wohl greifbar, mir ist aber nicht ganz klar, wie man das darstellen könnte. So etwas wie "die letzten 12 Monate" oder "die letzten 3 Jahre" wär wohl möglich. Oder hast du eine konkrete Vorstellung?Lieber Gruss
forelleblau -
Hallo forelleblau,
danke für die Rückmeldung. Freut mich, dass alle Werte prinzipiell verfügbar sind. Wäre schon, wenn wenigstens die Sollwerte als Datenpunkt eingebaut würden.
Was die historischen Werte betrifft, wäre vielleicht eine solche Struktur denkbar:
HISTORICAL
2019
year
jan
feb
mar
apr
...
2018
year
jan
feb
...HISTORICAL und die Jahreszahlen wären dann Ordner, die klein geschriebenen Begriffe Datenpunkte.
Ich bin jetzt leider nicht Programmiercrack und kenne auch die Datenstruktur nicht, die über die JSON Schnittstelle rüberkommt. Aber die Benennungen könnte man ja evtl. aus den dort enthaltenen Bezeichnungen extrahieren.
Kann ich das bei mir irgendwie mit einfachen Mitteln auslesen?Gruß
Manfred -
Hallo hmanfred
Hab paar Sachen gefunden:
Sollwerte: Was ich abrufen kann, sind die Vorgabewerte aus der Prognose-Konfiguration. Also Anlagegrösse, Jahressoll (kWh/kWp) und die Prozentwerte für die Aufteilung auf die Monate. Daraus können dann die Sollwerte errechnet werden. Also, die Grundlagen sind da, mir ist einfach noch nicht grad augenfällig klar, wie ich das programmieren soll. Musst wohl etwas Geduld haben.Jahrestotal pro Zähler : Diese Werte kann ich auch abrufen, da ist auch die Umsetzung klar.
Monatstotal: Da kann ich zwar ganz viel abrufen, aber ich werde aus der Zusammenstellung des JSON-Objekts nicht schlau. Da sind x-Mal die selben Monats-Total-Werte drin:
MonatsdatenSolarlog.txt
Findest du da die Logik? Ich müsste wissen, welches, der 254 Elemente ich dann auslesen sollte.
Ich kann dir sonst ein js-script zur Verfügung stellen, dass dir diese Werte ebenfalls ausliest und in das ioBroker logfile schreibt.
Interessiert?
Herzliche Grüsse forelleblau -
Guten Abend
Was die Jahressummen pro Zähler betrifft wäre jetzt auf github/npm eine Version 0.1.5 verfügbar die Historic.Jahr.yieldyear.Zählernahme - Objekte anlegt und mit Werten befüllt, bei mir hat's bis ins Installationsjahr der Anlage zurück funktioniert.
https://github.com/forelleblau/ioBroker.solarlogDa die Abfrage beim solarlog relativ lange dauert und die Werte ja nicht jeden Tag ändern (ausser das laufende Jahr) werden die Werte im Moment nur beim Start des Adapters abgefragt. Fürs aktualisieren als Adapter/Instanz neu starten.
War sowas gefragt?
Gruss forelleblau
-
Hallo forelleblau,
hab gerade die neue Version installiert. Ist ja schon mal ein guter Anfang.
Die historischen Werte sind nun bei mir auch seit Installation der Anlage (2009) drin.
Die Textdatei mit den Monatsdaten schau ich mir mal an. Ich musste mich beim Umstieg vom alten 400er auf den neuen 300er ein wenig mit der Datenstruktur beider Exportdateien beschäftigen. Die waren zueinander nicht kompatibel.
Kannst du mir sagen, wie ich die JSON-Objekte aus meinem System herausbekomme? So könnte ich bessere Vergleiche anstellen, da Inhalt der JSON-Objekte mit den realen Live-Werten aus meinem System korrelieren würden.
Was die Prognosewerte betrifft: Jahressoll und Prozentwerte je Monat würden die Möglichkeit bieten, daraus Monatswerte und Tageswerte (=Monatswert / AnzahlMonatstage) zu errechnen. Entweder macht das der Adapter oder ich baue mir ein Script und schreibe die Werte in neue Objekte.
Gruß
Manfred