Erfahrungswerte mit Stromzählersensoreinheit YouLess LS110?

Begonnen von rabbe, 04 November 2013, 17:27:21

Vorheriges Thema - Nächstes Thema

andreas0003

Hallo,

ich betreibe keine YouLess LS110 sondern zwei LS120 die ich über den S0 Bus an meine Zähler angeschlossen habe.

Der JSONMETER unterstützt die Erfassung der S0-Werte der LS120 nicht, so daß ich die Datei 70_JSONMETER.pm angepasst habe (nun ein Auszug aus der .pm)

##############################################################
# Syntax: valueType, code, FHEM reading name, statisticType, tariffType
#     valueType: 1=OBISvalue | 2=OBISvalueString | 3=jsonProperty | 4=jsonPropertyTime
#     statisticType: 0=noStatistic | 1=maxMinStatistic | 2=integralTimeStatistic | 3=State+IntegralTimeStatistic
#     tariffType: 0 = tariff cannot be selected, 1 = tariff can be selected via reading "activeTariff"
##############################################################
  my @jsonFields = (
    [3, "meterType", "meterType", 0, 0] # {"meterId": "0000000061015736", "meterType": "Simplex", "interval": 0, "entry": [
   ,[4, "timestamp", "deviceTime", 0, 0] # {"timestamp": 1389296286, "periodEntries": [
   ,[3, "cs0", "electricityConsumed", 3, 1] # {"cnt":" 86581,538","pwr":0,"lvl":56,"dev":"(±0%)","det":"","con":"OK","sts":"(49)","cs0":" 2286,870","ps0":457,"raw":567}                                           
   ,[3, "energy", "electricityConsumed", 3, 1] # {"status":"ok","result":[{"energy":ENERGY,"energyOut":ENERGYOUT,"time":TIME},...]}
   ,[3, "energyOUT", "electricityProduced", 3, 1] # {"status":"ok","result":[{"energy":ENERGY,"energyOut":ENERGYOUT,"time":TIME},...]}
   ,[3, "power", "electricityPower", 3, 1] # {"status":"ok","result":[{"power":POWER,"time":TIME}]}
   ,[3, "ps0", "electricityPower", 1, 0] # {"cnt":" 86581,538","pwr":0,"lvl":56,"dev":"(±0%)","det":"","con":"OK","sts":"(49)","cs0":" 2286,870","ps0":457,"raw":567}


Ich habe "cnt" gegen "cs0" sowie "pwr" gegen "ps0" ausgetauscht. Ebenfalls die JSON - Ausgabe jeweils dahinter, da diese im LS120 länger als beim LS110 ist.

Funktioniert soweit so gut. Jedoch gehe ich davon aus, dass beim nächsten Update die Anpassung wiederholt werden muss. Vielleicht kann ja jemand die JSONMETER anpassen.

Vielleicht hilft das ja dem ein oder anderen weiter :-)

vg
Andreas

tupol

Danke für den Hinweis. Ich hab eine neue Version hochgeladen. Bitte morgen mal testen.
Gruß
tupol

andreas0003

Danke ;-)

Ich konnte den LS120 installieren und er liefert nun auch ohne Anpassung Werte vom S0.

VG Andreas

kleing

Hallo ,
ich habe heute meinen LS120 in Betrieb genommen und in FHEM eingebunden, leider konnte ich keinen Zählerstand und auch keine Momentanleistung ablesen, beide Werte waren immer 0. Ich benutze KEINEN S0 Anschluß.

Beim Blick in die  Datei 70_JSONMETER.pm sind bei der Definition der Rading beide RÜclese Werte für den Zählerstand (cnt und cs0) der gleichen Variable zugeordnet.
Da ich nun keinen S0 Anschluß nutze kommt immer eine 0 zurück (gleiches bei pwr und ps0).

Ich habe für mich die Datei 70_JSONMETER.pm wie folgt angepasst:

   ,[3, "cnt", "electricityConsumed", 3, 1] # {"cnt":" 22,285","pwr":764,"lvl":0,"dev":"","det":"","con":"OK","sts":"(06)","raw":0}
   ,[3, "cs0", "electricityConsumed_s0", 3, 1]
   ,[3, "pwr", "electricityPower", 1, 0] # {"cnt":" 22,285","pwr":764,"lvl":0,"dev":"","det":"","con":"OK","sts":"(06)","raw":0}
   ,[3, "ps0", "electricityPower_s0", 1, 0]

So habe ich unterschiedliche Reading Values.

Sollte die Datei nicht grundsätzlich so gestaltet werden, dass alle Werte per readings zur Verfügung gestellt werden?

Gruß
Gerald

willybauss

Bist Du sicher, dass der LS120 von dem Modul supportet ist? Ich lese da nur LS110. Bei mir (LS110) klappt alles fehlerfrei.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

kleing

Ja, da bin ich mir sicher, der LS120 wird unterstützt.
So steht es zumindest im WIKI und auch in der Datei 70_JSONMETER.pm ist unter %meterTypes der LS110 und der LS120 angegeben.
Ich habe keine LS110 im Einsatz, aber hat der überhaupt eine S0 Schnittstelle? Wenn ja wundert es mich, das es geht.

Noch eine Anmerkung die Firmware meines LS120 ist die aktuelle 1.4.1
Und mit meinen Modifikationen geht es einwandfrei.

Gruß
Gerald

yoda_gh

Hallo!

Ich habe heute früh seit längerem mal wieder ein "update" in FHEM laufen lassen und seitdem funktioniert das Auslesen des LS120 nicht mehr, selbes Problem wie von kleing beschrieben.

Schaut man sich das im Event-Monitor an, sieht man, dass er immer erstmal einen Wert für Power und Consumed bekommt und unmittelbar anschließend jeweils "0". Ein "get <name> jsonAnalysis" liefert dann auch den passenden Hinweis:


[...]
================= Extract JSON values ==================
[...]
Value "78" for reading 'electricityPower' extracted from part 1:
"cnt":" 75889,386","pwr":78,"lvl":28,"dev":"(±1%)","det":"","con":"","sts":"","cs0":" 0,000","ps0":0,"raw":258}

Value "0" for reading 'electricityPower' extracted from part 1:
"cnt":" 75889,386","pwr":78,"lvl":28,"dev":"(±1%)","det":"","con":"","sts":"","cs0":" 0,000","ps0":0,"raw":258}


Da der LS120 seit Firmware 1.4 getrennte Daten für analog und S0 erfassen kann, liefert er entsprechend auch zwei Werte zurück. Ich denke, JSONMETER müsste also so angepasst werden, dass man auswählen kann, ob man die Analog- oder S0-Werte bekommen möchte...

tupol

Ich habe das Modul aktualisiert. Die S0-Readings haben neue Namen.

yoda_gh


eckonator

Hier meine fertige FHEM-Config für das YouLess LS110 mit gplot File:



# Stromzaehler YouLess LS110
defmod Stromzaehler JSONMETER LS110 192.168.178.77 300
attr Stromzaehler alias Stromsensor am Hauszähler
attr Stromzaehler doStatistics 1
attr Stromzaehler event-min-interval 60
attr Stromzaehler icon measure_power_meter
attr Stromzaehler room 20_UG_Heizraum
attr Stromzaehler group Stromzaehler
attr Stromzaehler stateFormat {sprintf("Zählerstand: %.2f kWh, Aktuell: %s Watt, heute: %s Watt ", (0.001*ReadingsVal($name, "electricityConsumed",0)), ReadingsVal($name, "electricityPower",0), ReadingsVal($name, "statElectricityConsumedToday",0))}
attr Stromzaehler timeOut 60

# Stromzaehler YouLess Log
define FileLog_Stromzaehler FileLog /var/log/fhem/Stromzaehler-%Y-%m.log Stromzaehler:(electricityConsumed|electricityPower)\x3a.*
attr FileLog_Stromzaehler group Stromzaehler
attr FileLog_Stromzaehler room 20_UG_Heizraum

# Stromzaehler YouLess LS110 PLot / Heute
define SVG_FileLog_Stromzaehler_Heute SVG FileLog_Stromzaehler:LS110:CURRENT
attr SVG_FileLog_Stromzaehler_Heute group Stromzaehler
attr SVG_FileLog_Stromzaehler_Heute fixedrange day
attr SVG_FileLog_Stromzaehler_Heute label "Stromverbrauch Heute"
attr SVG_FileLog_Stromzaehler_Heute room 20_UG_Heizraum,90_System_Plots

# Stromzaehler YouLess LS110 PLot / letzte 7 Tage
define SVG_FileLog_Stromzaehler_letzte7Tage SVG FileLog_Stromzaehler:LS110:CURRENT
attr SVG_FileLog_Stromzaehler_letzte7Tage group Stromzaehler
attr SVG_FileLog_Stromzaehler_letzte7Tage fixedoffset -1
attr SVG_FileLog_Stromzaehler_letzte7Tage fixedrange week
attr SVG_FileLog_Stromzaehler_letzte7Tage label "Stromverbrauch letzte 7 Tage"
attr SVG_FileLog_Stromzaehler_letzte7Tage room 20_UG_Heizraum,90_System_Plots

# Stromzaehler YouLess LS110 PLot / aktueller Monat
define SVG_FileLog_Stromzaehler_Monat SVG FileLog_Stromzaehler:LS110:CURRENT
attr SVG_FileLog_Stromzaehler_Monat group Stromzaehler
attr SVG_FileLog_Stromzaehler_Monat fixedrange month
attr SVG_FileLog_Stromzaehler_Monat label "Stromverbrauch aktueller Monat"
attr SVG_FileLog_Stromzaehler_Monat room 20_UG_Heizraum,90_System_Plots



Vielleicht kann es jemand gebrauchen, wenns schnell gehen soll  ::)
FHEM 6.2 | PiHole | MagicMirror2 | Fritz!Box 7590 (Basis) + 3x Fritz!Box 4040 (IP-Client) | Amazon DOT | HomeBridge | Max!Cube (geflasht) + Max Komponenten | Harmony Hub | YeeLight Bulbs | G-Homa und Fritz!DECT Steckdosen

fred_feuerstein

So, ich habe gestern dank der vielen Tipps hier auch meinen neuen Youless LS120 an meinem analogen Drehstromzähler in Betrieb genommen.

Auch die Statistics aktiviert und erstmal einen gemeinsamen Plot für aktuellen Verbrauch / Durchschnitt und Tagesverbrauch erstellt.

Um mit den Werten besser arbeiten zu können, bzw diese besser lesbar sind, habe ich mir einige davon einzeln in Userreadings aufgesplittet:

electricityConsumed_kWh {sprintf('%.2F', ReadingsVal("Stromzaehler","electricityConsumed",0)/1000)},
statElectricityConsumedToday_kWh {sprintf('%.2F', ReadingsVal("Stromzaehler","statElectricityConsumedToday",0)/1000)},
statElectricityPowerDay_Avg {sprintf('%s', ReadingsVal("Stromzaehler","statElectricityPowerDay", "")=~m/Avg:\s(.*)\sMax:/)},
statElectricityPowerDay_Min {sprintf('%s', ReadingsVal("Stromzaehler","statElectricityPowerDay", "")=~m/Min:\s(.*)\sAvg:/)},
statElectricityPowerDay_Max {sprintf('%s', ReadingsVal("Stromzaehler","statElectricityPowerDay", "")=~m/Max:\s(.*)/)},
statElectricityPowerMonth_Avg {sprintf('%s', ReadingsVal("Stromzaehler","statElectricityPowerMonth", "")=~m/Avg:\s(.*)\sMax:/)},
statElectricityPowerMonth_Min {sprintf('%s', ReadingsVal("Stromzaehler","statElectricityPowerMonth", "")=~m/Min:\s(.*)\sAvg:/)},
statElectricityPowerMonth_Max {sprintf('%s', ReadingsVal("Stromzaehler","statElectricityPowerMonth", "")=~m/Max:\s(.*)\s\(since:/)},
statElectricityPowerYear_Avg {sprintf('%s', ReadingsVal("Stromzaehler","statElectricityPowerYear", "")=~m/Avg:\s(.*)\sMax:/)},
statElectricityPowerYear_Min {sprintf('%s', ReadingsVal("Stromzaehler","statElectricityPowerYear", "")=~m/Min:\s(.*)\sAvg:/)},
statElectricityPowerYear_Max {sprintf('%s', ReadingsVal("Stromzaehler","statElectricityPowerYear", "")=~m/Max:\s(.*)\s\(since:/)},
statElectricityConsumedYesterday {sprintf('%s', ReadingsVal("Stromzaehler","statElectricityConsumedLast", "")=~m/Day:\s(.*)\sMonth:/)},
statElectricityConsumedYesterday_kWh {sprintf('%.2F', ReadingsVal("Stromzaehler","statElectricityConsumedYesterday",0)/1000)}


Ansonsten kommen wohl noch einige Auswertungen, Plots etc. hinzu.
Auch in der Tablet UI werde ich damit wohl eine Seite füllen :)

Gruß, Fred

FHEM auf Raspberry PI 3B+ im 7Zoll TouchDisplay Gehäuse, OS: Bullseye, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art

willybauss

Ich hatte hier mal das folgende Problem beschrieben:

Zitat von: willybauss am 14 Februar 2016, 13:13:29
Hi,
bei mir ist der Youless LS110 seit ca. 1 1/2 Jahren an der PV-Anlage im Einsatz. Läuft soweit ganz gut. Nur Abends bei Sonnenuntergang spielt er verrückt: obwohl die Sonne längst weg ist meldet er noch für 2 - 3 Stunden die zuletzt gemessene Leistung, i.d.R. ca. 50 ... 150 Watt, also einen konstanten aber dennoch falschen Wert).
Hat noch Jemand das Problem? Wie kann ich das umgehen?


Nachtrag 25.2.16:
Nachdem ich Kontakt mit dem Hersteller aufgenommen hatte, haben die mir eine Spezialfirmware für meine Bedürfnisse geschneidert. Ist zwar mit holländischem UI, aber das braucht man ja eh fast nie. Vermutlich kommt das dann bald auch auf deutsch und/oder englisch.
Problem ist wohl mein Zähler, der nur 75 Impulse (Umdrehungen) pro kWh macht. Dadurch dauert die "kommt keine Leistung mehr"-Erkennung zu lange. Ich habe jetzt akzeptiert, dass unterhalb von 66 Watt keine Leistung mehr detektiert wird, dann dauert die Null-Erkennung nur 12 Minuten statt x Stunden.

Kann Jemand sagen, ob das beim LS120 behoben ist, oder ob es beim LS110 inzwischen in der deutschen Firmware implementiert ist? Man braucht, um es zu testen, wohl einen analogen Zähler mit Drehscheibe, der an einer PV-Anlage hängt oder anderweitig gelegentlich SEHR geringe Leistungswerte bis runter auf Null detektieren soll.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

panzi

Hallo,
eine Frage dazu, kenn mich leider mit json überhaupt nicht aus.
Gibt es eine möglichkeit dem LS110/120 über einen einfachen url befehl, die momentane leistung zu entlocken.
Also eine einfache url abfrage, die einen zahlenwert zurückgibt?

willybauss

Wenn der LS110/120 in fhem eingebunden ist, dann genügt die fhem-Abfrage

list [Zählername] electricityConsumed

Als Antwort kommt dann

[Zählername]           [Datum] [Uhrzeit]    [Zählerstand]

auf die Webseite.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

panzi

Zitat von: willybauss am 27 Juli 2019, 13:40:17
Wenn der LS110/120 in fhem eingebunden ist, dann genügt die fhem-Abfrage

list [Zählername] electricityConsumed

Als Antwort kommt dann

[Zählername]           [Datum] [Uhrzeit]    [Zählerstand]

auf die Webseite.

danke - aber ich hätte gerne gewusst, ob es möglich ist einfach nur den aktuellen verbrauch als zahlenwert auszugeben