ÖkoFEN Pellematic über ModBus ansprechen!

Das klingt also wenn die Verbindung abbricht. Läuft die vielleicht über WLAN oder so?

paresy

Nö aber Stromnetz!

Über Kabel das gleiche Problem!

Hallo Paresy, hallo Mangid,

bei mir läuft die selbe Heizungsanlage, welche ich gerne über ModBus TCP auslesen möchte. Mangels Kenntnis kann ich nur über „rumprobieren“ und Forum lesen meine Erfahrungen sammeln :frowning:

Die Heizungsanlage lese ich im Moment über FHEM per httpmod aus. Grundsätzlich über TCP kann sie also kommunizieren.

Da ich mittlerweile IP Symcon als deutlich angenehmer empfinde, möchte ich mich von FHEM verabschieden und die Heizung künftig über ModBus und IPS auslesen.

Nach anlegen der erforderlichen Instanzen bekomme ich diese Fehlermeldungen.

10.04.2017 15:24:57*| TimerPool*| ModBus Device (UpdateTimer): Waiting for response timed out
10.04.2017 15:26:37*| TimerPool*| ModBus Device (UpdateTimer): Socket is not connected

Ein Test über ananas zeigt, dass Modbus grundsätzlich funktioniert. In ananas kann ich Werte auslesen. Siehe Bild.

Beim Hersteller Oekofen ist der ModBus-Profi zur Zeit im Urlaub, somit bekomme ich hier im Moment keinen Support.

Habt ihr einen Rat für mich?

Gruß
AKL

In Deinem Beispiel hast Du aber verschiedene UID eingetragen…?
Firewall ist ok?
Gruß Helmut

Hy,
ja habe damals auch länger gebraucht bis ich es am laufen hatte!
Erst seit dem Update auf die Version 2.08 funktioniert das Ganze richtig. Hier wurde ein Modus „Home Automation“ hinzugefügt! Ich habe die letzte Version der Registerbelegung hochgeladen die ich habe!

Soweit ich noch weiß musst du alle Werte mit Word (16bit -unsigned) einstellen und dann bei float werten den Teiler angeben!

Vielleicht kommst du damit schon mal weiter! Wenn du weitere Fragen hast poste sie einfach!

lg
Niki

Modbus_V208_home_automation_2.pdf (43.4 KB)

mit UID meinst du die „0“ bei ananas und die „1“ bei Geräte-ID im ModBus Gateway?

Habe jetzt die Geräte-ID auch auf „0“ gesetzt. Weiterhin keine Kommunikation.

10.04.2017 17:12:16*| Client Socket*| Applied settings
10.04.2017 17:12:16*| Client Socket*| Opening socket…
10.04.2017 17:12:16*| Event Control*| Reconnecting [Client Socket] succeeded
10.04.2017 17:12:51*| ModBus Gateway*| Applied settings
10.04.2017 17:13:25*| Client Socket*| Error reading: End of file
10.04.2017 17:13:30*| TimerPool*| ModBus Device (UpdateTimer): Waiting for response timed out
10.04.2017 17:16:20*| TimerPool*| ModBus Device (UpdateTimer): Socket is not connected

Hallo Niki,

auf meiner Anlage läuft noch die Version V2.06. Das könnte der entscheidende Hinweis sein. Vielen Dank.

Werde den Heizungsbauer um ein Update bitten. Das letzte (2.03 -> 2.06) haben sie im Rahmen der jährlichen Wartung umsonst mitgemacht. Die Fehlersuche stelle ich jetzt erstmal ein.

Noch eine grundsätzliche Frage: muss ich für jedes Register/Adresse ein eigenes ModBus Device anlegen?
Wenn ich 12 Werte abfragen möchte, muss ich dann auch 12 Devices anlegen?

Vielen Dank an Helmut und Niki.

Gruß
AKL

Hy,
ja testen konnte ich es damals auch mit der 2.06 habe aber damals einen Bug gefunden der den Heizkreis immer auf aus geschalten hat! Dies wurde erst mit der 2.08 behoben bekam es dadurch gratis upgedated! :slight_smile:

Ja genau du musst für jedes Register ein Device anlegen! Mit Register 1 beginnen und das dann auf „Home Automation“ umstellen damit die Register die Werte aus dem PDF liefern! Kannst du normalerweise in deiner Version am Ofen in den ModBus Einstellungen noch nicht wählen!

Lg
Niki

Danke, wieder was dazu gelernt. Schön, wenn einem so schnell geholfen wird.

Nach den Osterferien ist bei Oekofen der ModBus Profi wieder im Dienst. Mal sehen, was er meint. Vielleicht machen sie das Update wieder gratis.

Gruß
AKL

Gib doch nicht so schnell auf, eine Verbindung ist ja laut Niki möglich, stell mal versuchsweise die UID auf 0 oder 1
Versuchsweise auf Integer 16Bit und schaue ins Debugfenster mit Hex rein, nur um zu sehen ob was kommt, wenn was kommt, mach mal 'ne Hardcopy.
Gruß Helmut

Helmut, danke für die Aufmunterung. Werde die nächsten Tage weiter testen und mich wieder melden.

Hallo Helmut,

mit diesen Daten habe ich weiter getestet.

UID: 0 / Einheit: Word 16 Bit. Debug in Hex --> siehe Bild 1.

UID: 0 / Einheit: SmallInt 16 Bit. Debug in Hex --> siehe Bild 2

UID: 0 / Einheit: Integer 32 Bit. Debug in Hex --> siehe Bild 3


Die Fehlermeldungen sind weiterhin
:

13.04.2017 18:43:18*| Client Socket*| Applied settings
13.04.2017 18:43:18*| Client Socket*| Opening socket…
13.04.2017 18:43:18*| Event Control*| Reconnecting [Client Socket] succeeded
13.04.2017 18:43:33*| Client Socket*| Error reading: End of file
13.04.2017 18:43:33*| TimerPool*| ModBus Device (UpdateTimer): Socket is not connected

Gruß AKL

Ich lese daraus, dass Du ADR 104 liest, da steht 0 drin. Laut PDF ist es eine NUR Lese ADR

Ich meine aus Deinen Fehlermeldungen zu erkennen, dass Dein Clientsocket die Verbindung verliert, die Daten aber richtig liest.
Gruß Helmut

Hallo und frohe Rest-Ostern,

einen kleinen Erfolg kann ich melden. Die Daten der Heizungsanlage kommen bisher per Netzwerk in FHEM (siehe Bild). Nun habe ich testweise am Kesselbedienteil die Einstellung Netzwerkfunktionen auf „Aus“ gestellt. Danach kommen Daten per ModBus in IPS an. Vielleicht kann die Heizung entweder nur per http oder per ModBus kommunizieren?

Habe nun ein paar ModBus Devices angelegt. Auf Adresse 21 und 22 bekomme ich plausible Daten. Bei den anderen kommt Wert 0 oder unplausible Werte. Laut dem PDF von Oekofen zur V 2.06 sind wohl einige Werte noch nicht implementiert. Im PDF zur V 2.08 stehen deutlich mehr Inhalte drin.

@Niki: kannst du vielleicht noch ein paar Screenshots posten, welche Werte/Adressen du ausliest?

Ja genau du musst für jedes Register ein Device anlegen! Mit Register 1 beginnen und das dann auf „Home Automation“ umstellen damit die Register die Werte aus dem PDF liefern! Kannst du normalerweise in deiner Version am Ofen in den ModBus Einstellungen noch nicht wählen!

An meinem Ofen gibt es die Auswahl nicht, wo ich auf „Home Automation umstellen“ kann. Wie kann ich das Register 1 dann umstellen?

Gruß
AKL

FHEM readings.JPG

Hallo,

wollte euch meine erfolgreiche ModBus Installation nicht vorenthalten :). Durch die Firma Oekofen wurde im Rahmen des Wartungsvertrages kostenlos ein Update des Steuerung auf V2.08 eingespielt. Nun konnte ich auch am Kessel das Register 01 auf „Home Automation“ umstellen. Anschließend sind die Daten der Heizung nur so reingepurzelt :).

Nun fehlt noch der Feinschliff und ein Import in IPSView.

Bin total happy damit, vielen Dank für eure Unterstützung.

Gruß
AKL

Könnte mir bitte jemand die Register Adresse vom Pelletsfüllstand geben.
Kann diese leider im PDF nicht finden!

Hallo Tom,

es gibt keine Register Adresse für den Pelletfüllstand. Die Anlage hat keine Waage oder sonstige Mengen- oder Gewichtsmessung.

Den Füllstand lasse ich aus der Brennerlaufzeit errechnen. Pro Stunde Brennerlaufzeit werden 2,3 kg Pellets verbraucht. Diese Summe ziehe ich von der gesamt befüllten Menge an Pellets ab. Das Ergebnis ist die Menge an Pellets im Pelletlager.

Das ist natürlich ein rein rechnerischer Wert, der von der tatsächlichen Menge abweichen kann. Aber es reicht mir aus, um einen groben Überblick zu haben.

Gruß
Andi

Hallo Zusammen,

ich kenne auch keine Möglichleit den Füllstand direkt vom Ofen zu ermitteln! Daher gibt es auch kein Regsiter! Ich kenne nur eine Methode über die Laufzeit der Schnecke im Tank Dinge zu berechnen aber alles halt nur theoretisch!

Zur Info für euch, ab der Version 2.09 gibt es eine JSON-Schnittstelle in Testversion! Aus diesem Grund habe ich den Modbus deaktiviert und verwende diese seit einiger Zeit ohne Probleme!
Es ist darüber auch sehr leicht Werte am Ofen zu setzen!

http://www.oekofen.at

usage:
http://touch_ip:JSON_port/password/command

read example:
http://10.0.0.20:4321/********/all?

  all[?]     displays values of all available components
             optional parameter [?] adds meta data

  system[?]
      system global variables

  weather[?]
      current weather data

  forecast[?]
      date|temp|cloud|speed|image|code|unit[|sunrise|sunset] code see https://openweathermap.org/weather-conditions

  power[?]
      powermeter data

  stirling[?]
      stirling data

  hk[1..6][?]
      heating circuit data

  pu[1..3][?]
      accu data

  ww[1..3][?]
      domestic hot water data

  sk[1..6][?]
      solar circuit data

  se[1..3][?]
      solar gain data

  circ[1..3][?]
      circulation pump data

  pe[1..4][?]
      pellematic data

  st5k[1..4][?]
      5kw stirling data



set example:
http://10.0.0.20:4321/********/id(0..6)_variable=value

  system
      system global variables

  weather
      current weather data

  forecast
      date|temp|cloud|speed|image|code|unit[|sunrise|sunset] code see https://openweathermap.org/weather-conditions

  power
      powermeter data

  stirling
      stirling data

  hk(1..6)
      heating circuit data

  pu(1..3)
      accu data

  ww(1..3)
      domestic hot water data

  sk(1..6)
      solar circuit data

  se(1..3)
      solar gain data

  circ(1..3)
      circulation pump data

  pe(1..4)
      pellematic data

  st5k(1..4)
      5kw stirling data


only variables without a leading 'L_' can be set.


{
   "system":{
      "system_info":"system global variables",
      "L_ambient":{"val":"5", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_errors":{"val":"0", "factor":"1", "min":"-32768", "max":"32767"},
      "L_usb_stick":{"val":"false", "format":"0:Aus|1:Ein"}
   },
   "hk1":{
      "hk_info":"heating circuit data",
      "L_roomtemp_act":{"val":"216", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_roomtemp_set":{"val":"220", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_flowtemp_act":{"val":"496", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_flowtemp_set":{"val":"504", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_state":{"val":"32", "factor":"1"},
      "L_statetext":"Heizbetrieb aktiv",
      "mode_auto":{"val":"1", "format":"0:Aus|1:Auto|2:Heizen|3:Absenken"},
      "time_prg":{"val":"0", "format":"0:Zeit 1|1:Zeit 2"},
      "temp_setback":{"val":"200", "unit":"?C", "factor":"0.1", "min":"100.0", "max":"400.0"},
      "temp_heat":{"val":"220", "unit":"?C", "factor":"0.1", "min":"100.0", "max":"400.0"},
      "temp_vacation":{"val":"150", "unit":"?C", "factor":"0.1", "min":"100.0", "max":"400.0"},
      "name":{"val":"", "length":"20"},
      "oekomode":{"val":"0", "format":"0:Aus|1:Komfort|2:Minimum|3:?kologisch"}
   },
   "pu1":{
      "pu_info":"accu data",
      "L_tpo_act":{"val":"652", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_tpo_set":{"val":"504", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_tpm_act":{"val":"488", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_tpm_set":{"val":"504", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_pump_release":{"val":"80", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_pump":{"val":"0", "unit":"%", "factor":"1", "min":"0.0", "max":"100.0"},
      "L_state":{"val":"512", "factor":"1"},
      "L_statetext":"Anforderung Aus",
      "mintemp_off":{"val":"80", "unit":"?C", "factor":"0.1", "min":"80.0", "max":"900.0"},
      "mintemp_on":{"val":"500", "unit":"?C", "factor":"0.1", "min":"80.0", "max":"900.0"},
      "ext_mintemp_off":{"val":"80", "unit":"?C", "factor":"0.1", "min":"80.0", "max":"900.0"},
      "ext_mintemp_on":{"val":"80", "unit":"?C", "factor":"0.1", "min":"80.0", "max":"900.0"}
   },
   "ww1":{
      "ww_info":"domestic hot water data",
      "L_temp_set":{"val":"300", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_ontemp_act":{"val":"505", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_offtemp_act":{"val":"505", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_pump":{"val":"false", "format":"0:Aus|1:Ein"},
      "L_state":{"val":"8200", "factor":"1"},
      "L_statetext":"Zeit au?erhalb Zeitprogramm|Anforderung Aus",
      "time_prg":{"val":"0", "format":"0:Zeit 1|1:Zeit 2"},
      "sensor_on":{"val":"0", "format":"0:WW|1:TPO|2:TPM|3:SpUnten"},
      "sensor_off":{"val":"0", "format":"0:WW|1:TPO|2:TPM|3:SpUnten"},
      "mode_auto":{"val":"1", "format":"0:Aus|1:Auto|2:Ein"},
      "mode_dhw":{"val":"1", "format":"0:Aus|1:Auto|2:Ein"},
      "heat_once":{"val":"false", "format":"0:Aus|1:Ein"},
      "temp_min_set":{"val":"350", "unit":"?C", "factor":"0.1", "min":"80.0", "max":"800.0"},
      "temp_max_set":{"val":"500", "unit":"?C", "factor":"0.1", "min":"80.0", "max":"800.0"},
      "name":{"val":"", "length":"20"},
      "smartstart":{"val":"0", "unit":"min", "factor":"1", "min":"0.0", "max":"90.0"},
      "use_boiler_heat":{"val":"0", "format":"0:Aus|1:Ein"},
      "oekomode":{"val":"0", "format":"0:Aus|1:Komfort|2:Minimum|3:?kologisch"}
   },
   "pe1":{
      "pe_info":"pellematic data",
      "L_temp_act":{"val":"690", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_temp_set":{"val":"80", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_ext_temp":{"val":"-32768", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_frt_temp_act":{"val":"692", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_frt_temp_set":{"val":"80", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_br":{"val":"false", "format":"0:Aus|1:Ein"},
      "L_ak":{"val":"false", "format":"0:Aus|1:Ein"},
      "L_not":{"val":"true", "format":"0:Aus|1:Ein"},
      "L_stb":{"val":"true", "format":"0:Aus|1:Ein"},
      "L_modulation":{"val":"0", "unit":"%", "factor":"1", "min":"-32768", "max":"32767"},
      "L_uw_speed":{"val":"0", "unit":"%", "factor":"1", "min":"-32768", "max":"32767"},
      "L_state":{"val":"99", "format":"0:Dauerlauf|1:Start|2:Zuendung|3:Softstart|4:Leistungsbrand|5:Nachlauf|6:Aus|7:Saugen|8:! Asche !|9:! Pellets !|10:Pell Switch|11:St?rung|12:Einmessen|13:1|14:1|15:1|16:1|17:1|18:1|19:1|20:1|21:1|22:1|23:1|24:1|25:1|26:1|27:1|28:1|29:1|30:1|31:1|32:1|33:1|34:1|35:1|36:1|37:1|38:1|39:1|40:1|41:1|42:1|43:1|44:1|45:1|46:1|47:1|48:1|49:1|50:1|51:1|52:1|53:1|54:1|55:1|56:1|57:1|58:1|59:1|60:1|61:1|62:1|63:1|64:1|65:1|66:1|67:1|68:1|69:1|70:1|71:1|72:1|73:1|74:1|75:1|76:1|77:1|78:1|79:1|80:1|81:1|82:1|83:1|84:1|85:1|86:1|87:1|88:1|89:1|90:1|91:1|92:1|93:1|94:1|95:1|96:1|97:Aus|98:Aus|99:Aus|100:Aus|101:Aus"},
      "L_statetext":"Aus",
      "L_type":{"val":"1", "format":"0:PE|1:PES|2:PEK|3:PESK|4:SMART V1|5:SMART V2|6:CONDENS|7:SMART XS|8:SMART V3|9:COMPACT|10:AIR"},
      "L_starts":{"val":"1399", "factor":"1"},
      "L_runtime":{"val":"2285", "unit":"h", "factor":"1"},
      "L_avg_runtime":{"val":"97", "unit":"min", "factor":"1"},
      "L_uw_release":{"val":"662", "unit":"?C", "factor":"0.1", "min":"-32768", "max":"32767"},
      "L_uw":{"val":"0", "unit":"%", "factor":"1", "min":"-32768", "max":"32767"},
      "mode":{"val":"1", "format":"0:Aus|1:Auto|2:Ein"}
   },
   "error":{
   }

lg
Mangid

Hallo Mangid,

werden mit der 2.09 mehr Werte ausgegeben, als in der Modbus Version? Wie genau liest du die Daten aus? Nur ein Skript mit deinem Code erstellen?

Gruß
Andi

Aber warum steht dann am Display zb der Wert „PE Füllstand Gewebet 26208 kg“