NEWS
Test Adapter sma-em v0.5.x
-
ja, ich schreib mal kurz ein Programm heute Abend und schau mal was da ankommt…
-
So ich habe jetzt mal ein bischen gespielt. Mein ByteArray hat eine Größe von 600 und mit dem empfange ich auch die Daten.
Kleiner geht nicht größer geht, ist dann aber 0..
Wenn mein kleiner Listener läuft sehe ich ihn auch im netstat….
UDP 0.0.0.0:9522 :
Ich vermute fasst das er garkein UDP Listener aufbekommt. Kann mir jemand sagen wie ich an den Adapter am einfachsten einen Debugger bekomme?
Dann sehe ich vielleicht mehr warum er rausfliegt.
-
So ich habe jetzt mal ein bischen gespielt und mein Adapter läuft jetzt. Leider weiß ich aber nicht warum. Besser gesagt ich weiß schon warum,
aber wieso das der Adapter bei anderen so funktioniert weiß ich nicht. Hier meine Änderung:
Ich habe in der main.js bei allen Points in der als Length die 8 vorkam durch eine 6 ersetzt.
Beispiel:
Original:
var points = {
'SMASerial': {offset: 20, length: 4, factor: 1, unit: ''},
'pregard': {offset: 32, length: 4, factor: 1 / 10, unit: 'Watt'},
'pregardcounter': {offset: 40, length: 8, factor: 1 / 3600000, unit: 'kWh'},
'psurplus': {offset: 52, length: 4, factor: 1 / 10, unit: 'Watt'},
'psurpluscounter': {offset: 60, length: 8, factor: 1 / 3600000, unit: 'kWh'}
};
Angepasst:
var points = {
'SMASerial': {offset: 20, length: 4, factor: 1, unit: ''},
'pregard': {offset: 32, length: 4, factor: 1 / 10, unit: 'Watt'},
'pregardcounter': {offset: 40, length:6, factor: 1 / 3600000, unit: 'kWh'},
'psurplus': {offset: 52, length: 4, factor: 1 / 10, unit: 'Watt'},
'psurpluscounter': {offset: 60, length: 6, factor: 1 / 3600000, unit: 'kWh'}
Warum habe ich das gemacht? ich habe das Logging mal erweitert und gesehen das er die beiden
'SMASerial': {offset: 20, length: 4, factor: 1, unit: ''},
'pregard': {offset: 32, length: 4, factor: 1 / 10, unit: 'Watt'},
noch lesen konnte. Dann habe ich mir nochmal die Fehlermeldung angesehen:
by controller[0]: RangeError [ERR_OUT_OF_RANGE]: The value of "byteLength" is out of range. It must be >= 1 and <= 6.
Größer 1 kleiner= 6 er hat aber die 8 erhalten. Deswegen habe ich jetzt mal alles auf length: 6 gedreht und siehe da der Adapter startet und
liefert auch die richtigen Werte was ich bisher gesehen habe.
Vielleicht kann der AdapterOwner oder jemand anderes noch was dazu sagen ….
Gruß
Michael
-
Sehr suspekt!
Ich habe das ganze bei mir letzten Freitag in Betrieb genommen und alles lief problemlos ohne irgendwelche Anpassungen.
Was hat dein Energy Meter für eine Firmwareversion?
Ich habe hier die "Firmware-Version: 2.0.18.R", scheint die aktuellste zu sein.
-
Das könnte durchaus das Problem sein. Habe schon lange kein Update mehr gemacht.
Firmware-Version
1.02.04.R
Hast du auch das Engerymeter "1"? Oder schon das zweier?
ich lade mal eine neue Firmware dann sollte das Problem ja wieder auftreten und dann ändere ich sie wieder ab auf original.
Update: Ich glaube du hast schon die neue Version. Auf der SMA Seite ist die 1.02.04.R die letzte als Download.
Die 2.0X sind wohl für das Emter-20 ich habe das Emeter-10
https://www.sma.de/produkte/monitoring- … meter.html
unter Release Notes
-
Das könnte durchaus das Problem sein. Habe schon lange kein Update mehr gemacht.
Firmware-Version
1.02.04.R
Hast du auch das Engerymeter "1"? Oder schon das zweier? `
Habe das "neue", erst frisch zugelegt!
Probier mal, bin gespannt was rauskommt?
-
Also ich würde fast sagen da liegt der Hase begraben.
Vielleicht kann ja sven-rhein der das gleiche Problem hat/hatte wie ich mal melden was er für ein SmartMeter hat.
-
Ich verstehe es nicht. :shock:
Habe jetzt das PDF Dokument gefunden was SMA für das "Protokoll" bereitstellt.
Zähler haben immer die Messart 8 (Zeitintegral1, Zählerstände) und werden mit einer Datenlänge von 8 Byte übertragen.
-
Hi Leute,
nachdem ich gestern ein Host + NodeJS + NPM Update bei mir durchgeführt habe, hatte ich plötzliche dieselbe Fehlermeldung wie buemi im errorlog und der SMA Adapter wollte nicht mehr:
"by controller[0]: RangeError [ERR_OUT_OF_RANGE]: The value of "byteLength" is out of range. It must be >= 1 and <= 6."
Vorher ist der Adapter monatelang ohne Fehlermeldung und ohne spezielle Anpassung gelaufen.
Deinstallation + Neuinstallation hat nichts gebracht.
Ich musste ebenfalls wie buemi (danke für den Hinweis) die main.js Datei des Adapters editieren und alle 8er gegen 6er tauschen.
Seitdem läuft der Adapter nun wieder.Ich vermute daher also, dass das Problem eventuell mit den neueren Versionen vom Host oder von nodejs zusammenhängt, da sich sonst bei mir nix an der Infrastruktur geändert hat ...
Beste Grüße
-
Nun habe ich hier auch mal eine Frage:
Wenn man den Home Manager verwendet, ist es dann möglich zu sehen was gerade über die PV generiert wird? Denn ich sehe immer nur ob und wieviel gerade vom Netz entnommen(psregard) oder eingespeißt(psurplus) wird.Denn im Sunnyportal sieht man ja die aktuell generierte, Eigenverbrauchte und evtl. entnommene Leistung in dem schönen Drei Balken Bildchen.
Oder muss ich dazu ebenfalls den Modbus Adapter laufen lassen um am Wechselrichter explizit die generierte Leistung abzufragen und das dan auszurechnen?
-
ja, du brauchst um dieselbe Funktionalität wie im Sunny Portal (3 Balken) zu erreichen, zusätzlich den Modbus Adapter und musst die Werte dann entsprechend per Skript berechnen ...
-
@Qlink
Die Daten sollten doch aber auch über die Multicasadresse abgreifbar sein oder bin ich da falsch gewickelt?Dann wäre es ja "nur" nötig die fehlenden Datenpunkte in den Adapter auf zu nehmen
-
Der dafür wichtige Wert PV-Leistung (bzw. im Sunny Portal heißt er PV Erzeugung) wird bei zumindest bei mir nicht vom SMA-EM Adapter ausgelesen, sondern nur über den Modbus Adapter ...
-
@Qlink
Und genau da liegt mein Problem, weil das mit Modbus bei mir nicht klappen will -
Welchen Home Manager und welchen Wechselrichter hast du im Einsatz ?
-
@Qlink
Den Homemanager 2 und den smart 10000tl-20 -
Hmm genau dasselbe Setup hab ich auch (außer 7000tl-20 anstatt 10000tl-20)
Sehe keinen Grund wiesos bei dir nicht funktionieren soll.Hier meine Settings vom Adapter:
Wichtig ist auch noch, dass der WR die aktuellste Firmware hat (die Modbus Funktionalität wurde bei der -20er Serie erst mit einem bestimmtem Update nachgereicht) und der Modbus Server aktiviert ist...
Was gibts denn für eine Fehlermeldung mit Modbus ?
-
@Qlink
Ich habe in einem anderen Thread auch nach einer Lösung gefragt, habe dann die Einstellungen die mir genannt wurden übernommen und auf einmal gehts, warum kann ich nicht sagen da ich keinen Unterschied finden konnte.
Das Resultat ist schlussendlich das wichtige. -
Ich kann das Verhalten bzgl. ByteLength 6 und 8 von Buemi bestätigen.
Nachdem ich die Instanz von einem iobroker auf einem raspi in einer multihost umgebung auf einem auf einem NUC (ubuntu) laufendem iobroker verschoben habe, musste ich ebenfalls die von buemi beschriebenen Änderungen machen.Vielleicht kann jemand das Adapter dahingehend ändern, dass beiden Varianten laufen. Ggf. über eine Auswahl in der config des Adapters.
-
Das Thema mit der Byte Length hatte ich auch beim SMA Adapter.
Leider wird der Adapter scheinbar nicht mehr weiterentwickelt ...Ich habe auch das Phänomen, dass der SMA Adapter alle ~30min die Daten für 3-5min nicht aktualisiert. Die Werte bleiben in iobroker wie eingefroren. Nach den 3-5min werden sie dann von selbst wieder aktualisiert. Es gibt keine Log Fehlermeldung oder sonstiges...
Starte ich während dieser Zeit den SMA Adapter manuell neu, werden sie ebenfalls sofort wieder aktualisiert ...
Hat von euch jemand zufällig ein ähnliches Problem ?