Hallo Leute,
ich habe gesehen, dass es bei Firmata auch die Möglichkeit Textmeldung/String absetzten.
Gibt es eine möglichkeit diesen in FHEM einzulesen?
Hintergrund ist der folgende:
Ich würde gerne mir aus einem Arduino und Firmata einen Universal Gas/Wasser/Stromzähler bauen.
Die Sensoren zB. Reed oder Ferraris Zähler, sollen einen Eingangspin dann High oder Low setzten.
Ist das gegeben soll der Inhalt einer Variablen +1 erhöhen werden.
Dieser Wert soll dann in das EEPROM geschrieben werden und anschließen an FHEM übertragen werden.
Somit würde er Wert dann auch einen Neustart überleben.
Sollte ein Stromausfäll auftreten würde theoretisch nicht gezählt werden können, da aber dann die Heizung auch nicht laufen kann dürfte es damit keine Probleme geben.
Mit ist bekannt, dass man einen Counter in FHEM bei FRM_IN benutzen kann.
Bei meinem Test auf einer VM wurde aber jedes mal der Zähler bei einem neuverbinden des Firmatas zurückgesetzt.
Bin mir da nicht sicher ob das generell so ist oder einfach nur ein Effekt des Testsystems.
Mir würde es auch schon reichen, wenn der Counter in FHEM einen neustart von FHEM und/oder des Firmatas überleben würde.
Hat damit jemand Erfahrung?
Danke und Gruß Robert
Hallo Robert!
Du kannst das lösen, indem Fhem den Zählwert immer weiter um die "positive Änderung" hochzählt,
auch wenn der Eingangszählwert zwischenzeitlich auf 0 fällt. Hierfür gibt es "monotonic"
z.B. ein eigenes userreading mit monotonic anlegen:
attr HMswitch userReadings kWh_total:energy monotonic {ReadingsVal($name,'energy',0)/1000.0}
Das Beispiel stammt aus:
http://forum.fhem.de/index.php?topic=20082.0
Ich hoffe das hilft dir! ;)
Gruß,
Christian
Zitat von: dbox2user am 09 Februar 2016, 09:15:49
Hallo Robert!
Du kannst das lösen, indem Fhem den Zählwert immer weiter um die "positive Änderung" hochzählt,
auch wenn der Eingangszählwert zwischenzeitlich auf 0 fällt. Hierfür gibt es "monotonic"
z.B. ein eigenes userreading mit monotonic anlegen:
attr HMswitch userReadings kWh_total:energy monotonic {ReadingsVal($name,'energy',0)/1000.0}
Das Beispiel stammt aus:
http://forum.fhem.de/index.php?topic=20082.0
Ich hoffe das hilft dir! ;)
Gruß,
Christian
Danke für deinen Tip.
Ist eine gute Idee löst aber das Problem trotzdem nicht ganz.
Wenn FHEM gerade neu gestartet wird und der Gaszähler läuft werden die neuen Impulse nicht erfasst.
Aus diesem Grund wollte ich das Zählen auf dem Firmata abbilden und nur den Wert übertragen.
Du könntest von Firmata komplett weg und direkt den "Arducounter"sketch auf den Arduino benutzen.
http://www.fhemwiki.de/wiki/ArduCounter
Hier würde der Arduino auch bei einem Fhem-Neustart weiterzählen (solange der Arduino an Spannungsversorgung hängt ) .
Wenn Fhem dann hochgefahren ist und den Arduino wieder abfragt, bekommst Du wieder den aktuellen Tählerstand übertragen.
Zusätzlich würde ich auch hier "monotonic" verwenden.
Der Arducounter.sketch gibt Dir zusätzlich zum Zählerstand auch noch die errechnete Leistung aus.
Gruß,
Christian
Zitat von: dbox2user am 09 Februar 2016, 12:10:14
Du könntest von Firmata komplett weg und direkt den "Arducounter"sketch auf den Arduino benutzen.
http://www.fhemwiki.de/wiki/ArduCounter
Hier würde der Arduino auch bei einem Fhem-Neustart weiterzählen (solange der Arduino an Spannungsversorgung hängt ) .
Wenn Fhem dann hochgefahren ist und den Arduino wieder abfragt, bekommst Du wieder den aktuellen Tählerstand übertragen.
Zusätzlich würde ich auch hier "monotonic" verwenden.
Der Arducounter.sketch gibt Dir zusätzlich zum Zählerstand auch noch die errechnete Leistung aus.
Gruß,
Christian
Hi Christan, danke für den Tip.
Sowas habe ich auf den ersten Blick gesucht.
Ich lese es mir mal durch.
Gruß Robert