Ich habe mir einen HM-ES-TX-WM zugelegt und in FHEM eingebunden .... sieht allerdings alles etwas anders aus als im Wiki.
Nach dem Autocreate wurden erstellt:
Ein Device HM_xxxxx mit 2 Kanälen - Kanal 1 enthält die Readings peerList, recentStateType und state - in Kanal 2 sind die aus dem Wiki bekannten Readings wie energy, power etc.
Von 2 Kanälen ist im Wiki gar keine Rede, auch soll angeblich ein Device Namens CUL_HM_HM_ES_TX_WM_xxx statt nur HM_xxxx erstellt werden.
Was ist da schief gelaufen bei mir? ... FHEM und Module sind alle aktueller Stand.
Im Device selbst steht immer wieder CMDs_pending und Nack .... im Kanal 2 werden aber die korrekten Werte regelmäßig empfangen.
Auch ist die Doku (Wiki/Forum) zur Einrichtung relativ rar ... wie zB setze ich den nun den initialen Zählerstand ... eigentlich will ich ja diesen darstellen und nicht nur den Verbrauch seit Einschalten des Gerätes?
Alles gut. Das Wiki hängt bei vielen Dingen hinterher. Oft werden Artikel eingestellt und keiner aktualisiert sie. Die Doku ist das Nachschlagewert für aktuelle Dinge.
setreading setzt ein Reading auf einen Wert. Das ist in deinem Device, wie in jedem anderen auch.
Zitat von: marvin78 am 11 März 2016, 19:43:15
setreading setzt ein Reading auf einen Wert.
energyOffset mittels setreading zu setzen war auch mein erster Gedanke.
Aber diese Reading wurde ja vom Zählersensor empfangen, mit setreading ändere ich es nur in FHEM. Wird dieses dann nicht irgendwann wieder vom Zählersensor überschrieben?
ändere energyoffset. in energycalc steht dann das gesamtergebnis.
Wegen dem NACK keine Sorgen, mein ES-TX-WM zeigt seit 2 Jahren NACK und funktioniert problemlos.
VG
Frank
Auch ich habe mir einen
HM-ES-TX-WM Zählersensor für Strom- und Gaszähler zugelegt und bin jetzt am Wochenende am implementieren an einem Drehstromzähler der Marke
Elster AS1440. Über die Anfangs gestellte Frage bin ich auch gestolpert und habe dann diesen Forumsbeitrag entdeckt. Soweit hat bis jetzt aber das anlegen in FHEM funktioniert. Zur besseren Übersicht habe ich das was FHEM automatisch erkannt hat wie folgt umbenannt:
Zitat
- Stromzaehlersensor (das eigentliche Device HM-ES-TX-WM wie oben schon beschrieben mit seinen 2 Kanälen)
- Stromzaehlerdaten_01 (channel_01 vom umbeannten Device Stromzaehlersensor)
- Stromzaehlerdaten_02 (channel_02 vom umbeannten Device Stromzaehlersensor)
- FileLog_Stromzaehlersensor
Dann habe ich eins zu eins das Userreading:
attr <DeviceName> userReadings kWh {sprintf("%.1f",ReadingsVal("<DeviceName>","energy","???")/1000+72031.5639)}
aus dem Wiki http://www.fhemwiki.de/wiki/HM-ES-TX-WM_Z%C3%A4hlersensor_f%C3%BCr_Strom-_und_Gasz%C3%A4hler (http://www.fhemwiki.de/wiki/HM-ES-TX-WM_Z%C3%A4hlersensor_f%C3%BCr_Strom-_und_Gasz%C3%A4hler) übernommen.
Jetzt hänge ich aber beim
FileLog und beim
userReading fest und habe mich hier mit "eingelinkt", da meine Frage nahtlos zur Eingangsfrage paßt und meiner Meinung nach auch für andere Anfänger sicherlich von Interesse ist.
Wie bereits oben beschrieben erstellt FHEM anhand von Autocreate verschiedene Einträge. Darunter auch das von mir umbenannte
FileLog_Stromzaehlersensor, welches Daten wie z. B.:
Zitat2016-03-12_10:01:57 Stromzaehlersensor CMDs_done
2016-03-12_10:01:58 Stromzaehlersensor Activity: alive
2016-03-12_10:01:58 Stromzaehlersensor D-firmware: 1.0
.
.
.
enthält. Mit diesen Daten ist also ist das Log für die eine Verbrauchsauswertung nicht weiter von Belang. Somit muss man ein eigenes FileLog anlegen. Auch bei mir erscheinen die benötigten Readings im channel_02 (umbenant bei mir in Stromzaehlerdaten_02).Ich habe das anlegen eines eigenen
FileLog's hieraus wie folgt versucht mit:
define FileLog_Stromzaehlerdaten_02 FileLog ./log/Stromzaehlerdaten_02 -%Y-%m.log Stromzaehlerdaten_02
Im Ergebnis funktioniert das aber nicht und ich erhalte von FHEM den Hinweis:
Zitatwrong syntax: define <name> FileLog filename regexp [readonly]
Beim
userReading ist mir nicht klar, ob es sich im Wiki nur um ein Beispiel handelt und man am Ende von
attr <DeviceName> userReadings kWh {sprintf("%.1f",ReadingsVal("<DeviceName>","energy","???")/1000+72031.5639)}
eingene individuelle Zahlen eingeben muss.
Auch ist mir der Hinweis von frank
Zitatändere energyoffset. in energycalc steht dann das gesamtergebnis.
nicht klar?
Meine Readings sehen zur Zeit wie folgt aus:
ZitatRegL_01.
boot off
current 0
eState E: 2880 P: 997 I: 0 U: 0 f: 50
energy 2880
energyCalc 2880
frequency 50
kWh 72031.6
power 997
state 2880
voltage 0
Kann mir jemand helfen wie ich jetzt weiter vorgehen muss?
Zitat von: Hauenschild am 12 März 2016, 13:03:04define FileLog_Stromzaehlerdaten_02 FileLog ./log/Stromzaehlerdaten_02 -%Y-%m.log Stromzaehlerdaten_02
Im Ergebnis funktioniert das aber nicht und ich erhalte von FHEM den Hinweis...
Zwischen ./log/Stromzaehlerdaten_02 und -%Y-%m.log darf kein Leerzeichen sein.
Zu den Readings:
Bei mir gibts auch noch ein Reading energyOffset .... dieses wurde automatisch angelegt und enthielt den Wert 56. Woher der Wert kam, weiss ich nicht ... ich hatte den Sensor aber auch schon einige Male angelernt und resettet.
energyCalc enthält dann immer energyOffset+energy.
EnergyOffset ist also sowas wie der "Anfangszählerstand". Mir ist/war aber dessen Herkunft nicht klar und somit auch nicht ob er evtl. irgendwann wieder überschrieben wird und somit der Zählerstand nicht mehr stimmt.
Oh, wie peinlich :o ::) :-[ ! Ich hatte den code wirklich x-mal geprüft und immer wieder das Leerzeichen übersehen. Jetzt klappt alles. Danke für die schnelle Hilfe und die Hinweise.
Ich muss den Thread noch mal aufwärmen. Habe bei meinem HM-ES-TX-WM diese Tage die Firmware aktualisiert, wodurch natürlich das Device auch die beiden o.g. Kanäle bekommen hat. Die Messwerte laufen nun auf Kanal 2 auf. Um nun wieder auf den korrekten Zählerstand zu kommen, wollte ich beim 2. Kanal mit regSet energyOffset 51220300 den derzeitigen Zählerstand setzen bekomme dann aber die Fehlermeldung:
energyOffset failed: supported register are baudrate mtrConstGas mtrConstIr mtrConstLed mtrSensIr mtrType pairCentral powerMode protocolMode samplPerCycl serialFormat transmDevTryMax transmitTryMax
Für mich stellt sich das so dar, als unterstütze FHEM das setzen des Offsets (noch) nicht auf dem Kanal.
Trifft das zu oder bin ich da auf dem Holzweg?
VG
Stefan
Zitat von: StefanD am 07 Mai 2016, 17:19:43... wollte ich beim 2. Kanal mit regSet energyOffset 51220300 den derzeitigen Zählerstand setzen.
energyOffset ist ein "reading" - also einfach
setreading xyz_Ch2 energyOffset 1234
Zitat von: roedert am 07 Mai 2016, 18:55:09
energyOffset ist ein "reading" - also einfach setreading xyz_Ch2 energyOffset 1234
jepp, setreading war das Zauberwort! :)
Danke + VG Stefan
Danke für den Hinweis, hab das FW-Update gar nicht mitbekommen. Wie ist wohl das beste Vorgehen bei diesem Update? Ich hab das Update jetzt gemacht und die beiden neuen Kanäle bekommen. Das alte Device gibt es natürlich auch noch. Ich befürchte, dass ich jetzt an dem alten Device haufenweise "tote" Readings habe, die jetzt nur noch in den Kanälen upgedatet werden?
Wäre es wohl sauberer, wenn man aus FHEM nochmal alle Devices (des TX..) löscht und dann noch einmal sauber neu pairt?
Zitat von: vbs am 07 Mai 2016, 20:26:13
Danke für den Hinweis, hab das FW-Update gar nicht mitbekommen. Wie ist wohl das beste Vorgehen bei diesem Update? Ich hab das Update jetzt gemacht und die beiden neuen Kanäle bekommen. Das alte Device gibt es natürlich auch noch. Ich befürchte, dass ich jetzt an dem alten Device haufenweise "tote" Readings habe, die jetzt nur noch in den Kanälen upgedatet werden?
Wäre es wohl sauberer, wenn man aus FHEM nochmal alle Devices (des TX..) löscht und dann noch einmal sauber neu pairt?
Neu gepairt habe ich nicht. Hab beim Device alle readings gelöscht, meine Attribute in den 2. Kanal übernommen, wo die Daten jetzt auflaufen und die "Pfeil nach rechts" Taste am TX gedrückt, damit die "Core-Readings" wieder kommen. Einen getConfig habe ich auch noch hinterhergeschickt.
VG Stefan
Hast du denn dann das Firmware-Reading (mit "1.1")? Mir wurde mal gesagt, dass u.a. dieses Reading nur beim Pairen übertragen wird.
Zitat von: vbs am 07 Mai 2016, 21:54:41
Hast du denn dann das Firmware-Reading (mit "1.1")? Mir wurde mal gesagt, dass u.a. dieses Reading nur beim Pairen übertragen wird.
Ja, habe ich. Es wird immer übertragen, wenn du das Device nochmal in den Pairing Modus versetzt, ganz egal ob du es pairen möchtest oder nicht. Dazu musst du aber das Device nicht aus FHEM löschen und neu anlegen lassen oder den HM-LAN oder CUL in den Pairing Modus versetzen.
VG Stefan
Ok, danke.