FIRMATA & FHEM String senden/empfangen

Begonnen von no_Legend, 26 Januar 2016, 10:55:31

Vorheriges Thema - Nächstes Thema

no_Legend

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
Docker FHEM immer aktuell,4x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
Homematic, Shelly, Tasmota, MQTT, Unifi Network usw.

dbox2user

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
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

no_Legend

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.
Docker FHEM immer aktuell,4x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
Homematic, Shelly, Tasmota, MQTT, Unifi Network usw.

dbox2user

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
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

no_Legend

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
Docker FHEM immer aktuell,4x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
Homematic, Shelly, Tasmota, MQTT, Unifi Network usw.