Poolsteuerung per Modbus auslesen

Begonnen von Fistandantilus, 18 August 2018, 18:15:54

Vorheriges Thema - Nächstes Thema

JoeALLb

#30
Servus nochmal.
Wenn ich das richtig sehe, steht in RELAIS_STATUS jetzt auch, welche Stufe die Filterpumpe
laufen soll.
Bit 6= schnell, 7 mittel und 8 langsam.


Bekomme es leider dennoch nicht "programmiert", perl ist mir einfach zu fremd.
Versucht habe ich es über

filterSpeed:RELAIS_STATUS.* {
if    (($eventValue & '0000001') == '0000001') {return 1} 
elsif (($eventValue & '00000001')== '00000001') {return 2} 
else { return 0}
},


Der Vorteil ist, dass es schneller geht als die modhttp Variante!
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

JF Mennedy

Ja das ist richtig dass in dem register auch die pumpen Stufe angezeigt wird, allerdings ist dieses register nicht beschreibbar :(

JF Mennedy

Du musst die bits anders interpretieren (siehe mein Beitrag in einem anderen thread) :
Zitat
author=JF Mennedy link=topic=75638.msg1075465#msg1075465 date=1596191742]
Also, Selbsthilfe ist der Beste Weg zum Lernen...

Ich habe nun die Dezimalzahl in eine Binärzahl umgewandelt:
PH_STATUS { sprintf("%016b",ReadingsVal($name,"pH-Status",0)) }

Das Ergebnis ist:
PH_STATUS 1110010100000000

Die Bitfolge ist :


bit:     15 14 13 12   11 10 9  8    7  6  5  4    3  2  1  0
binar:   1  1  1  0    0  1  0  1    0  0  0  0    0  0  0  0


Und somit komme ich an die jeweiligen Statusmeldungen aus dem Register :-)

JoeALLb

Zitat von: JF Mennedy am 05 August 2020, 11:02:14
Ja das ist richtig dass in dem register auch die pumpen Stufe angezeigt wird, allerdings ist dieses register nicht beschreibbar :(
Stimmt, aber ich brauche das hier gar nicht beschreibbar. Ich lese das hier nur aus, und sende es weiter per knx. Somit übernimmt bei mir die Elektrolyse Box die grundsteuerung, ich kann es aber jederzeit per knx übersteuern.
Beim manuellen filterstart kann ich auch die Pumpe Geschwindigkeit mit angeben. Ist dieses Feld. Auch nicht schreibbar?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

JF Mennedy

Welches register meinst du? Die beschreibbaren sind alle im 0x04er Bereich...

JoeALLb

Servus,
Das muss ich mir noch genauer ansehen, bin gerade nicht vor Ort.

Mir fällt auf, dass nach einer Stromabschaltung manchmal Werte nicht gespeichert werden.
Weist du zufällig, ob das Setzen dieses Wertes dabei etwas helfen würde?
Oder ist der gar nicht schrkeibbar, weil er eben nicht im 0x04er Bereich sich befindet?

0x02F0
MBF_SAVE_TO_EEPROM

Hast du noch eine Idee, wie ich "erkennen", sprich in einem reading einen Eintrag bekommen kann, wenn das Gerät strom los ist?
Im Log von FHEM finde ich Reading timeouts, aber
I'm Modbus Modul selbst scheint es dafür nichts zu geben.

Sg Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

JoeALLb

Ist es bei dir auch so? Wenn ich die Hydrolyse von 40% auf 60% erhöhe, bleibt die tatsächliche Stufe bis zum Restart des Gerätes bei den 40%.
Ob das auch mit dem Speichern des Wertes zusammenhängt? Wenn ich am Display das verändere, wird der neue Wert auch erst nach dem OK übernommen.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

JF Mennedy

ZitatMir fällt auf, dass nach einer Stromabschaltung manchmal Werte nicht gespeichert werden.
Weist du zufällig, ob das Setzen dieses Wertes dabei etwas helfen würde?
Oder ist der gar nicht schrkeibbar, weil er eben nicht im 0x04er Bereich sich befindet?

Die Sollwerte sind im 0x05er Bereich (USER). Laut Doku muss ein Schreiben ins EEPROM durchgeführt werden um die Werte dauerhaft zu speichern... Aber beachte den hinweis aus der Doku dass das EEPROM nicht unendlich viele Schreibzyklen hat...

ZitatHast du noch eine Idee, wie ich "erkennen", sprich in einem reading einen Eintrag bekommen kann, wenn das Gerät strom los ist?
Im Log von FHEM finde ich Reading timeouts, aber
I'm Modbus Modul selbst scheint es dafür nichts zu geben.

Was steht denn im State, wenn die Anlage ausgeschaltet ist?

ZitatIst es bei dir auch so? Wenn ich die Hydrolyse von 40% auf 60% erhöhe, bleibt die tatsächliche Stufe bis zum Restart des Gerätes bei den 40%.
Ob das auch mit dem Speichern des Wertes zusammenhängt? Wenn ich am Display das verändere, wird der neue Wert auch erst nach dem OK übernommen.

Ich lasse den Sollwert der Hydrolyse eigentlich immer auf 100% stehen... Aber wenn ich ihn verändere( 0x0502 MBF_PAR_HIDRO in fhem obj-h01282-reading
HydroSollwert) wird es auf der SR-Pro übernommen...

Gruss Jan

JoeALLb

#38
Zitat von: JF Mennedy am 07 August 2020, 13:51:31
Aber beachte den hinweis aus der Doku dass das EEPROM nicht unendlich viele Schreibzyklen hat...
Nun, ich brauche maximal 100 im Jahr.

Zitat von: JF Mennedy am 07 August 2020, 13:51:31
Was steht denn im State, wenn die Anlage ausgeschaltet ist?

connected.

Zitat von: JF Mennedy am 07 August 2020, 13:51:31
Aber wenn ich ihn verändere( 0x0502 MBF_PAR_HIDRO in fhem obj-h01282-reading
HydroSollwert) wird es auf der SR-Pro übernommen...
Übernommen, sprich angezeigt wird mir auch der neue Wert. Aber angesteuert wird noch der alte!
Ich habe eine recht große Anlage und bei 100% entstehen bei mir in der Verrohrung recht viele Blasen, wenn die Pumpe nicht auf der höchsten Stufe läuft. (Ich habe Glasrohre, sehe die Blasen also).
Nun möchte ich aber tagsüber nur 10-15m3/h  permanernt umwälzen, daher möchte ich dazu den Sollwert, bei nicht allzugroßer Differenz reduzieren.
50% scheint hier ein recht guter Wert zu sein.

sG Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Fosso

Zitat von: JoeALLb am 07 August 2020, 13:06:36
Ist es bei dir auch so? Wenn ich die Hydrolyse von 40% auf 60% erhöhe, bleibt die tatsächliche Stufe bis zum Restart des Gerätes bei den 40%.
Ob das auch mit dem Speichern des Wertes zusammenhängt? Wenn ich am Display das verändere, wird der neue Wert auch erst nach dem OK übernommen.

Hallo Zusammen,
dafür gibt es einen undokumentierten Befehl MBF_EEPROM_RESTART, welchen mir ein Poolmonteur freundlicherweise genannt hat...
1. den neuen Sollwert setzen z.B.: 0x0508 (dez. 1288) MBF_PAR_RX1 auf 700 (mV)
2. im EEPROM speichern: 0x02F0 (dez. 752) MBF_SAVE_TO_EEPROM auf 1 setzen
3. EEPROM Restart: 0x02F5 (dez. 757) MBF_EEPROM_RESTART auf 1 setzen

nach 3. wird der neue Sollwert, so als würde man am Display OK drücken, unmittelbar aktiviert :-)
Grüße von Fosso

JoeALLb

Juhuu, das funktioniert perfekt!
Man muss lediglich nach dem Setzen des neuen Sollwertes "etwas" warten...
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

JoeALLb

Kann man eigentlich den Boost starten?
Wenn nein, lt. Anleitung sollte die RX-Controlle deaktiviert werden während einem Boost.

Wenn ich also den RX-Soll auf 999 stelle und 100% Leistung einstelle, kann ich ja einen Boost "simulieren".
KAnn ich dann zumindest diese RX-Kontrolle deaktivieren, oder macht das keinen Sinn?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

JoeALLb

Zitat von: JF Mennedy am 05 August 2020, 12:05:40
Welches register meinst du? Die beschreibbaren sind alle im 0x04er Bereich...

Servus! Sorry der Nachfrage, hast Du das mal in iobroker versucht?
Kann mir dabei jemand auf die Sprünge helfen? Wo muss ich dort die Adressen angeben?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

JF Mennedy

Im iobroker sollte es etwas einfacher gehen, da kannst Du die Registeradressen im Adapter eintragen.. Schau Dir mal von Matthias Kleine das Tutorial für die Integration von einem Wechselrichter über Modbus an... Da ist das Modul ganz gut beschrieben... https://haus-automatisierung.com/hardware/iobroker/2020/12/18/iobroker-sma-wechselrichter-modbus.html

Gruss Jan

JoeALLb

Hallo
Zitat von: JF Mennedy am 08 Mai 2021, 22:51:03
Im iobroker sollte es etwas einfacher gehen

Hallo Jan, DANKE!!
Das Lesen der 100er Werte klappt damit mittlerweile ganz gut, das schreiben jedoch noch nicht.

Auch 1282_HydroSollwert kann ich damit nicht lesen. Hast Du dazu viell. noch einen Tip? Ich will die Werte damit auf einem entfernten Standort
erhalten und per mqtt auf mein FHEM senden. 
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270