HARGASSNER Modul (nur Readings)

Begonnen von alkneer, 31 Juli 2016, 14:40:31

Vorheriges Thema - Nächstes Thema

alkneer

Da ich hier im Forum schon so viel Nützliches gefunden habe, wollte ich mal was zurückgeben:

Im Anhang findet Ihr ein selbstgebautes Modul zum Auslesen der Werte einer Hargassner Pelletheizung.
Bei mir funktioniert das prima mit einer HSV14. Einfach eine Netzwerkverbindung zwischen Router/Switch
und einem der beiden Netzwerk-Ports am Touch-Display der Heizung herstellen und los geht's.

Die gelieferten Werte können möglicherweise von Gerät und Firmware-Version abhängen und lassen sich
aktuell nur auslesen und nicht ändern.

Ich lasse mir mit den Daten ein hübsches Diagramm im FHEMWeb zeichnen (siehe Anhang)...

Bin mal gespannt, ob das jemand brauchen kann - im Zweifelsfall viel Spaß damit.

Grüße,
Alex.
FHEM auf DS1815+ mit 32 HomeMatic-Geräten uvm.

micomat

cool :) wo genau sitzt der LAN Anschluss?
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

alkneer

Vorne am Touch-Display (unter der Gummiabdeckung links) ist eine Buchse und genau dahinter ist nochmal eine (beide können nicht gleichzeitig genutzt werden).

Zum Ausprobieren kann man prima die vordere nehmen. Wenn der Kabelsalat dann mal weg soll, empfiehlt sich der Umzug in den unsichtbaren Bereich.

Ohne Touch-Display geht es übrigens so nicht. Ich meine mal gelesen zu haben, dass Hargassner erst vor wenigen Jahren auf die neuen Bedienelemente umgestellt hat. Vielleicht hast Du ja zu früh zugegriffen...

Grüße,
Alex.
FHEM auf DS1815+ mit 32 HomeMatic-Geräten uvm.

micomat

Unsere Anlagen laufen schon eine Weile. Leider haben beide kein Touch Display =(
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

cored

Hallo zusammen,

wie kann ich das Modul nutzen?
Kann ich nur die im Plot gezeigten Daten nutzen? oder noch mehr?
Kann ich die Daten auch über das Hargassner Webinterface auslesen?


Gruß Cored

marsill82

Hallo,
das Modul hört sich super an.
Ich habe bisher eine seperate Umsetzung für genau den Zweck auf einem raspi laufen, will aber auf fhem umstellen.

Gibt es zu dem Modul noch eine kleine Erläuterung wie man es nutzt?

Danke.

Schlauby_123

Hallo,

ich möchte den Eintrag wieder aufgreifen da ich auch einen Hargassner im Keller habe.
Gibt es für das Modul ein Update oder läuft es top?
Gibt es eine Beschreibung für den newbie wo etwas variiert werden kann oder an die eigene Anlage angepasst werden muss?

Danke

Ralf

Andreas Walter

Ich habe zwei Kessel von Hargassner, einen Stückholzkessel HV30 und einen Pelletskessel Classic22, beide mit Touch Display und beide senden jeweils über ein Gateway an Hargassner. Mit der App von Hargassner kann man einiges sehen, und manches auch aus der Ferne bedienen.
Was in der App jedoch völlig fehlt, sind Kurvenverläufe. Am Touch Display gibt es einige Kurven, aber nur über kurze Zeiträume. Ich möchte zum Beispiel die Außentemperatur und den Pelletsverbrauch über den ganzen Winter sehen.
Ich hatte schon festgestellt, dass beide Kessel über Telnet jeweils alle halbe Sekunde einen Datensatz rauspusten. Über den Vergleich mit der App konnte ich einige Werte zuordnen. Vermutlich kann man auch die Verstellmöglichkeiten analysieren, indem man über die App etwas verstellt, und währenddessen die Kommunikation aufzeichnet.
Für den ersten Schritt würde mir das lesen und interpretieren von Alex schon reichen.
@Alex: kannst Du vielleicht noch etwas dazu sagen?
Ich habe im Code gesehen, dass Du zwei Zeilen liest, und die erste davon verwirfst, vermutlich weil sie unvollständig sein kann?
Wie muss ich mir denn das vorstellen, was zwischen Telnet->new(.. und $telnet->close passiert? Wo wird denn gewartet, bis die zwei Zeilen eingetroffen sind? Wartet das getline() blockierend, bis ein Zeilenende empfangen wurde?

Viele Grüße
Andreas

Schlauby_123

Hallo Walter,

da ich auf meine Frage leider keine Antwort von Alext bekommen habe glaube ich einer muss Alex direkt auf seiner EMail-Adresse anschreiben und Fragen ob er uns noch helfen kann.
Hatte bis jetzt aber nicht die Zeit und Muße dazu.
Interessieren würde es mich aber noch sehr, da es mir genau wie dir geht mit meinem Ofen...

Gruß Ralf

alkneer


Hallo Hargassner-Freunde,


sorry für die späte Rückmeldung.
Zu den Fragen:

       
  • für meine Anforderungen genügt das Auslesen der Anlage in FHEM
  • dort kann ich an meinem Info-Tablet z.B. sehen, ob das Ding überhaupt läuft (bevor man es merkt, weil das Haus ganz kalt ist)
  • dort kann ich analysieren, warum es morgens im Bad für meine Liebste noch nicht warm genug ist und wieviel Minuten früher ich die Nachtschaltung beenden muss, damit es rechtzeitig warm genug ist
  • per Telnet kommen immer zwei Lines, wobei die erste für mich keine relevanten Daten liefert - daher wird diese verworfen
  • der getLine-Befehl wartet tatsächlich non-busy, bis ein Newline im Datenstrom kommt.
Und für alle, die schon vor der Installation die im Modul integrierte Doku sehen wollen:

This module connects to the HARGASSNER Pellet Heating. 

Define 

       
  • define <name> HARGASSNER <hostname> <interval> 

    <hostname> is the name or ip address of the HARGASSNER Pellet Heating. 

    <interval> is the interval in seconds between fhem try to get new data from heating. (e.g. 60) 

    Example: 

            
    • define Pelletoven HARGASSNER 192.168.1.69 60 
Readings   

       
  • boiler_state - Kesselzustand

    Boiler off - Heizung aus
    Refill in x minutes - Nachfüllen in x Minuten
    Refill pellets - Pellets nachfüllen
    Check sliding grate - Prüfung Rost
    Ignition starting - Zündung Start
    Ignition inserting - Zündung Einschub
    Ignition pausing - Zündung Pause
    Ignition reduced - Zündung Reduziert
    Full firing - Leistungsbrand
    Ember presevation - Gluterhaltung
    Deashing fan - Entaschung Gebläse
    Sliding grate open - Rost auf
    Cleaning starting - Reinigung Start
    Cleaning - Reinigung
    Cleaning ending - Reinigung Ende
  • co2_measured-level - CO2-Anteil
  • co2_desired-level - CO2-Anteil Soll
  • boiler_measured-temp - Kesseltemperatur
  • boiler_desired-temp - Kesseltemperatur Soll
  • fluegas_measured-temp - Rauchgastemperatur
  • outdoor_measured-temp - Außentemperatur
  • outdoor_average-temp - Außentemperatur gemittelt
  • buffer_upmost_measured-temp - Puffertemperatur oben
  • buffer_center_measured-temp - Puffertemperatur Mitte
  • buffer_bottom_measured-temp - Puffertemperatur unten
  • extraneousheat_measured-temp - Fremdwärmetemperatur
  • measured-returntemp - Rücklauftemperatur
  • desired-returntemp - Rücklauftemperatur Soll
  • returnpump_level - Rücklaufpumpe
  • plat_measured-temp - ?
  • heatingcircuit0_measured-flowtemp - Vorlauftemperatur Heizkreis 0
  • heatingcircuit0_desired-flowtemp - Vorlauftemperatur Soll Heizkreis 0
  • heatingcircuit0_measured-temp - Temperatur Heizkreis 0
  • hotwatertank0_measured-temp - Temperatur Boiler 0
  • hotwatertank0_desired-temp - Temperatur Soll Boiler 0
  • heatingcircuit1_measured-flowtemp - Vorlauftemperatur Heizkreis 1
  • heatingcircuit2_measured-flowtemp - Vorlauftemperatur Heizkreis 2
  • heatingcircuit1_desired-flowtemp - Vorlauftemperatur Soll Heizkreis 1
  • heatingcircuit2_desired-flowtemp - Vorlauftemperatur Soll Heizkreis 2
  • heatingcircuit1_measured-temp - Temperatur Heizkreis 1
  • heatingcircuit2_measured-temp - Temperatur Heizkreis 2
  • hotwatertank1_measured-temp - Temperatur Boiler 1
  • hotwatertank1_desired-temp - Temperatur Soll Boiler 1
  • heatingcircuit3_measured-flowtemp - Vorlauftemperatur Heizkreis 3
  • heatingcircuit4_measured-flowtemp - Vorlauftemperatur Heizkreis 4
  • heatingcircuit3_desired-flowtemp - Vorlauftemperatur Soll Heizkreis 3
  • heatingcircuit4_desired-flowtemp - Vorlauftemperatur Soll Heizkreis 4
  • heatingcircuit3_measured-temp - Temperatur Heizkreis 3
  • heatingcircuit4_measured-temp - Temperatur Heizkreis 4
  • hotwatertank2_measured-temp - Temperatur Boiler 2
  • hotwatertank2_desired-temp - Temperatur Soll Boiler 2
  • heatingcircuit5_measured-flowtemp - Vorlauftemperatur Heizkreis 5
  • heatingcircuit6_measured-flowtemp - Vorlauftemperatur Heizkreis 6
  • heatingcircuit5_desired-flowtemp - Vorlauftemperatur Soll Heizkreis 5
  • heatingcircuit6_desired-flowtemp - Vorlauftemperatur Soll Heizkreis 6
  • heatingcircuit5_measured-temp - Temperatur Heizkreis 5
  • heatingcircuit6_measured-temp - Temperatur Heizkreis 6
  • hotwatertank3_measured-temp - Temperatur Boiler 3
  • hotwatertank3_desired-temp - Temperatur Soll Boiler 3
  • heatingcircuit0_desired-temp - Temperatur Soll Heizkreis 0
  • heatingcircuit1_desired-temp - Temperatur Soll Heizkreis 1
  • heatingcircuit2_desired-temp - Temperatur Soll Heizkreis 2
  • heatingcircuit3_desired-temp - Temperatur Soll Heizkreis 3
  • heatingcircuit4_desired-temp - Temperatur Soll Heizkreis 4
  • heatingcircuit5_desired-temp - Temperatur Soll Heizkreis 5
  • heatingcircuit6_desired-temp - Temperatur Soll Heizkreis 6
  • draftfan_desired-level - Saugzuggebläse Soll
  • draftfan_measured-level - Saugzuggebläse
  • boiler_burstscale-level - Kessel BrstScale
  • chargescrew_control-level - Regler Einschubschnecke
  • chargescrew_desired-level - Einschubschnecke Soll
  • chargescrew_amperage - Stromstärke Einschubschnecke
  • roomdischarge_amperage - Stromstärke Raumaustragungsmotor
  • ashremovalmotor_amperage - Stromstärke Ascheaustragungsmotor
  • draftfan_amperage - Stromstärke Saugzuggebläse
  • cleaningmotor_amperage - Stromstärke Putzeinrichtungs-Motor
  • lambda_voltage - Lambda-Spannung
  • multijetmeters_measured-flowtemp - Vorlauftemperatur Mehrstrahlwasserzähler
  • multijetmeters_measured-returntemp - Rücklauftemperatur Mehrstrahlwasserzähler
  • multijetmeters_flow-rate - Durchfluss Mehrstrahlwasserzähler
  • multijetmeters_power-output - Leistung Mehrstrahlwasserzähler
  • volumeflowcontroller_flow-rate - Volumenstromgeber Volumenstrom
  • volumeflowcontroller_measured-temp - Volumenstromgeber Temperatur
  • IO32_measured-flowtemp - Vorlauftemperatur  IO32
  • slidinggrate_motor - Schieberost-Motor
  • slidinggrate_position - Position Schieberost
  • slidinggrate_mode - Modus Schieberost
  • cascade0_desired-temp - Temperatur Kaskade 0 Soll
  • cascade1_desired-temp - Temperatur Kaskade 1 Soll
  • cascade2_desired-temp - Temperatur Kaskade 2 Soll
  • cascade3_desired-temp - Temperatur Kaskade 3 Soll
  • cascade0_measured-temp - Temperatur Kaskade 0 Ist
  • cascade1_measured-temp - Temperatur Kaskade 1 Ist
  • cascade2_measured-temp - Temperatur Kaskade 2 Ist
  • cascade3_measured-temp - Temperatur Kaskade 3 Ist
  • switchingunit_position - Position Umschalteinheit
  • switchingunit_desired-motor - Motor Umschalteinheit Soll
  • switchingunit_measured-motor - Motor Umschalteinheit Ist
  • heatingcircuit0_state - Zustand Heizkreis 0
  • heatingcircuit1_state - Zustand Heizkreis 1
  • heatingcircuit2_state - Zustand Heizkreis 2
  • heatingcircuit3_state - Zustand Heizkreis 3
  • heatingcircuit4_state - Zustand Heizkreis 4
  • heatingcircuit5_state - Zustand Heizkreis 5
  • heatingcircuit6_state - Zustand Heizkreis 6
  • hotwatertank0_state - Zustand Boiler 0
  • hotwatertank1_state - Zustand Boiler 1
  • hotwatertank2_state - Zustand Boiler 2
  • hotwatertank3_state - Zustand Boiler 3
  • buffer_state - Zustand Puffer
  • buffer_desired-temp - Solltemperatur Puffer
  • mode_fw - Mode FW
  • chargescrew_operating-hours - Betriebsstunden Einschubschnecke
  • pellet_consumption - Pelletverbrauch gesamt
  • remote0_state - Zustand Fernbedienung 0
  • remote1_state - Zustand Fernbedienung 1
  • remote2_state - Zustand Fernbedienung 2
  • remote3_state - Zustand Fernbedienung 3
  • remote4_state - Zustand Fernbedienung 4
  • remote5_state - Zustand Fernbedienung 5
  • remote6_state - Zustand Fernbedienung 6
  • external_heatingcircuit0_desired - Externer Heizkreis 0 Soll
  • external_heatingcircuit1_desired - Externer Heizkreis 1 Soll
  • external_heatingcircuit2_desired - Externer Heizkreis 2 Soll
  • highest_req - Höchste Anforderung
  • runtime_firing_since_deashing - Laufzeit Leistungsbrand seit Ascheentleerung
  • runtime_chargescrew_since_fillup - Laufzeit Einschubschnecke seit Füllung
  • deashing_count - Anzahl der Entaschungen
  • slidinggrate_movement_count  - Anzahl Schiebrost-Bewegungen

Bei mir sieht das aktuell so aus:

       
  • IO32_measured-flowtemp   0
  • ashremovalmotor_amperage   75 mA
  • boiler_burstscale-level   65%
  • boiler_desired-temp   67
  • boiler_measured-temp   69
  • boiler_state   ignition_pausing
  • buffer_bottom_measured-temp   120
  • buffer_center_measured-temp   120
  • buffer_desired-temp   0
  • buffer_state   0
  • buffer_upmost_measured-temp   120
  • cascade0_desired-temp   0
  • cascade0_measured-temp   0
  • cascade1_desired-temp   0
  • cascade1_measured-temp   0
  • cascade2_desired-temp   0
  • cascade2_measured-temp   0
  • cascade3_desired-temp   0
  • cascade3_measured-temp   0
  • chargescrew_amperage   75 mA
  • chargescrew_control-level   71%
  • chargescrew_desired-level   46%
  • chargescrew_operating-hours   4588
  • cleaningmotor_amperage   0 mA
  • co2_desired-level   10.9 %
  • co2_measured-level   12.4 %
  • deashing_count   1
  • desired-returntemp   58
  • draftfan_amperage   0 mA
  • draftfan_desired-level   57%
  • draftfan_measured-level   52%
  • external_heatingcircuit0_desired   0
  • external_heatingcircuit1_desired   0
  • external_heatingcircuit2_desired   0
  • extraneousheat_measured-temp   125
  • fluegas_measured-temp   180
  • heatingcircuit0_desired-flowtemp   0
  • heatingcircuit0_desired-temp   20
  • heatingcircuit0_measured-flowtemp   -20
  • heatingcircuit0_measured-temp   20
  • heatingcircuit0_state   0
  • heatingcircuit1_desired-flowtemp   48
  • heatingcircuit1_desired-temp   24
  • heatingcircuit1_measured-flowtemp   140
  • heatingcircuit1_measured-temp   20
  • heatingcircuit1_state   1
  • heatingcircuit2_desired-flowtemp   0
  • heatingcircuit2_desired-temp   20
  • heatingcircuit2_measured-flowtemp   140
  • heatingcircuit2_measured-temp   20
  • heatingcircuit2_state   0
  • heatingcircuit3_desired-flowtemp   0
  • heatingcircuit3_desired-temp   20
  • heatingcircuit3_measured-flowtemp   -20
  • heatingcircuit3_measured-temp   20
  • heatingcircuit3_state   0
  • heatingcircuit4_desired-flowtemp   0
  • heatingcircuit4_desired-temp   20
  • heatingcircuit4_measured-flowtemp   -20
  • heatingcircuit4_measured-temp   20
  • heatingcircuit4_state   0
  • heatingcircuit5_desired-flowtemp   0
  • heatingcircuit5_desired-temp   20
  • heatingcircuit5_measured-flowtemp   -20
  • heatingcircuit5_measured-temp   20
  • heatingcircuit5_state   0
  • heatingcircuit6_desired-flowtemp   0
  • heatingcircuit6_desired-temp   20
  • heatingcircuit6_measured-flowtemp   -20
  • heatingcircuit6_measured-temp   20
  • heatingcircuit6_state   0
  • highest_req   57
  • hotwatertank0_desired-temp   0
  • hotwatertank0_measured-temp   -20
  • hotwatertank0_state   0
  • hotwatertank1_desired-temp   57
  • hotwatertank1_measured-temp   53
  • hotwatertank1_state   1
  • hotwatertank2_desired-temp   0
  • hotwatertank2_measured-temp   -20
  • hotwatertank2_state   0
  • hotwatertank3_desired-temp   0
  • hotwatertank3_measured-temp   -20
  • hotwatertank3_state   0
  • lambda_voltage   15 mV
  • measured-returntemp   120
  • mode_fw   0
  • multijetmeters_flow-rate   0 l/min
  • multijetmeters_measured-flowtemp   0
  • multijetmeters_measured-returntemp   0
  • multijetmeters_power-output   0 KW
  • outdoor_average-temp   7
  • outdoor_measured-temp   7
  • pellet_consumption   29366 kg
  • plat_measured-temp   33
  • remote0_state   1
  • remote1_state   1
  • remote2_state   1
  • remote3_state   1
  • remote4_state   1
  • remote5_state   1
  • remote6_state   1
  • returnpump_level   0%
  • roomdischarge_amperage   3 mA
  • runtime_chargescrew_since_fillup   11 min
  • runtime_firing_since_deashing   17 min
  • slidinggrate_mode   3
  • slidinggrate_motor   0
  • slidinggrate_movement_count   9701
  • slidinggrate_movement_count   9730
  • slidinggrate_position   0
  • switchingunit_desired-motor   6 mm
  • switchingunit_measured-motor   0 mm
  • switchingunit_position   1
  • volumeflowcontroller_flow-rate   0 l/min
  • volumeflowcontroller_measured-temp   0
Anbei noch mein aktueller Plot.


Ich kann Euch nur empfehlen, dass Modul einfach mal einzubinden.
Der Define ist schnell gemacht und dann könnt Ihr schauen, ob es für Euch passt.
Bin inzwischen auf einem FHEM-Docker-Image - dann ist das mit Telnet und ähnlichen Erweiterungen deutlich entspannter als mit der "nativen" Installation per Spk-Datei auf meiner Synology Diskstation.


Viele Grüße, Alex.
FHEM auf DS1815+ mit 32 HomeMatic-Geräten uvm.

scg

Hallo zusammen,

die Readings der Anlagen sind offensichtlich abhängig vom Kessel und vom Softwarestand der Anlage. Die Anlagenparameter sind zu Beginn der Datei hinterlegt, die beim Logging auf SD geschrieben wird (z.B. DAQ00000.DAQ). Das angehängte Python-Skript bereitet diese Daten für das Modul 20_HARGASSNER.pm auf. Dazu alles zwischen <DAQPRJ> und </DAQPRJ> in eine utf-8 codierte Datei kopieren und das Skript mit dieser Datei laufen lassen. Die Ausgabe im Modul in die Funktion HARGASSNER_GetUpdate einfügen.

Das Modul habe ich entsprechend angepasst und bei Gelegenheit auch noch die Aufbereitung für DbLog eingefügt.

Have fun.

sinus444

Hallo Zusammen,

Ich habe gerade keine FHEM laufen, habe aber seit einigen Tagen einen Hargassner Pelletkessel (NANO PK).

Die Installation ist gerade zu Ende und nun würde ich den Kessel irgendwie ins Netzwerk bringen.

Das Modul sieht super aus. Genau so etwas habe ich mir vorgestellt. Bedienen muss ich den Kessel nicht unbedingt.

Frage vorweg: Mir wurde gesagt, die Netzwerkanbindung funktioniert nur mit zwischengeschaltetem Gateway.
Stimmt nur, wenn ich die APP haben möchte, richtig?

michisa86888

Hallo zusammen,
hat jemand das Modul mit aktueller Software am laufen?

hkueller

Hallo Zusammen,

Ich hab seit 05/2022 jetzt auch so einen Hargassner NanoPK am laufen. Da ich auch im FHEM sehen möchte was der macht, hab ich mir das Modul mal vorgenommen.
Anfangs hatte ich das Problem, das sich das Mutlitouch im Netzwerk nicht gemeldet hat.
Per default war bei mir eine Statische IP Konfiguriert - über Einstellungen->setup->display->netzwerk muss das auf Automatisch geändert werden, Dann meldet sich das Display auch im Netzwerk an.

Das Python Script hat bei mir auf dem DAQ00001.DAQ leider nicht mehr funktioniert.

Also habe ich mir das Modul mal neu erstellt (jetzt als 20_HGNanopk.pm). Hier ein dickes Danke an alkneer und scg für die bisherigen arbeiten an dem Modul.
Ich habe das Modul so erweitert, das DAQ00001.DAQ jetzt im root Verzeichniss der FHEM Installation gesucht wird. Das Modul funktioniert nur wenn dieses File vorhanden ist.
Das Modul liest jetzt die 2. Zeile diese Files ein (allerdings per System Aufruf -> läuft damit wahrscheinlich NUR noch auf UNIX Installationen).
Da das file in ISO-8859-1 kodiert ist, muss das erst mal per "recode" kommand auf den lokalen Zeichensatz convertiert werden. die recode package (apt install recode, bzw. dnf install recode) muss also installiert sein.

-> wenn jemand dazu in der Lage ist sowas in nativem Perl zu machen - feel free! - der commandline aufruf zum auslesen und erstaufbereitung der daten:
head -2 DAQ00001.DAQ|tail -1|recode ISO-8859-1|tr "<" "\n"|grep "CHAN"|grep "unit"|sed -e "s/^CHANNEL id='//" -e "s/' name='/;/" -e "s/' unit='/;/" -e "s;'/>;;"

Die Readings des Module werden komplett aus diesem File generiert. - nach einem Software Update des Brenners also einfach nur ein neues per SD Datalogging erstellen, reinkopieren, und schon kennt das modul wieder alle Werte.
ABER:
Nach dem Update des Files empfiehlt es sich einmal alle Readings zu löschen. das kann man unter Unix relativ einfach mit:

# for reading in $(echo "list hargassner_nanopk"|nc localhost 7072|grep "2022-05"|awk '{print $3}'); do
> echo "deletereading hargassner_nanopk $reading"|nc localhost 7072;
> done


erledigen.

Nach dem ersten Initialisieren des Modules wird (wenn noch nicht vorhanden) ein DAQ00001.translation angelegt.
In diesem File werden alle Parameternamen aus dem  file  DAQ00001.DAQ aufgelistet - jeder parameter gefolgt von einem ";". Nach dem ";" kann man nun eigene Namen für die Parameter eintragen.
Beim nächsten update der Moduldaten werden dann neue Readings mit der "Übersetzung' erzeugt. Auch nach Änderungen der *.translation Datei lohnt es sich einmal die readings zu löschen.

Weiterhin kann noch ein DAQ000001.state angelegt werden.
Das kann z.B. so aussehen
ZK;Brenner_aus,refill_in_x_minutes,refill_pellets,check_sliding_grate,Uebergang_LB,ignition_inserting,Leistungsbrand,ignition_reduced,Ausbrand,ember_preservation,deashing_fan,sliding_grate_open,cleaning_stated,cleaning,cleaning_ended
In diesem fall werden die Statusmeldungen des (ORGINALNAME!) Parameters ZK (1,2,3,4,5 usw.) umgesetzt in die komma separierten werte die hier für den ZK angegeben wurden.
im obigen Beispiel gild also für den status:
1 = Brenner_aus
2 = refill_in_x_minutes
3 = refill_pellets
4 = check_sliding_grate

usw....
Auch das kann zur Laufzeit dynamisch erweitert werden, und wird jeweils ab dem nächsten update des Modules verwendet.
Ich habe mal das Modulefile, sowie mein translateion und states file angehängt. - mir sind noch viele der parameter unklar, so dass ich keine passende "translation" dafuer habe.
Vielleicht hat ja jemand mit mehr heizungsverständniss mal Lust das mal weiter auszubauen ?

Beste Grüße
Harald
fhem auf Fedora KVM instance mit >300 Homematic Devices

hkueller

Nochmal Hallo Zusammen,

Argh - mist gebaut, sorry.
Files aus dem Falschen Verzeichniss hochgeladen. Hier nochmal die richtigen files.
Villeicht kann ein Moderator die an meinen Vorherigen post anhängen, und die dort hochgeladenen löschen ?

Viele Grüße
Harald
fhem auf Fedora KVM instance mit >300 Homematic Devices

hkueller

Noch ein paar bugs gefunden und gehoben (telnet aufruf hardcoded auf meinen Hargassner, korrekturen bei den Readings, da diese mit mehreren Leerzeichen im Namen Probleme machen - die werden jetzt mit _ ersetzt)
Entsprechend anbei auch einen neue DAQ00001.translation
fhem auf Fedora KVM instance mit >300 Homematic Devices

hkueller

Hallo Zusammen,

Ich hab das Modul noch etwas erweitert. Da der NanoPK unwahrscheinlich viele Daten liefert, von denen die meisten gar nicht benötigt werden (an die 10 Heizkreise werden softwareseitig unterstützt - ich hab z.B. nur einen - jeder Heizkreis liefert daten zu vorlauf temperatur, rücklauf, pumpenstatus usw...) hab ich jetzt die translation 3 spaltig gemacht. Aufbau ist:
Orginalname;Anzeigename;Anzeigeflag.

Ist das *.translation nicht vorhanden wird es automatisch erzeugt.

Orginalname wird dabei aus der Orginal DAQ00001.DAQ, welche im FHEM_HOME liegen muss, erzeugt.
Anzeigenamen kann definiert werden - ist das Feld leer, wird in den Readings der Orginalname angezeigt, ansonsten der hier angegebene String
Format des Tranlation files ist jetzt:
Orginalname;Anzeigename;Flag

  • Orginalname -> ReadingName aus DAQ0001.DAQ - Readingname, wenn kein Anzeigename angegeben ist
  • Anzeigename -> Alternative Anzeige in den Readings -> Orginalname wird durch diesen String ersetzt
  • Anzeigeflag: 1 -> in den Readings Anzeigen, 0-> NICHT in den readings Anzeigen.
Aenderungen in dem DAQ00001.translation file werden jetzt bei jedem Abfragen der Daten vom Kessel erkannt und die Readings AUTOMATISCH entsprechend upgedated.

Beste Grüße
Harald
fhem auf Fedora KVM instance mit >300 Homematic Devices

hkueller

So ich hab das Modul nochmal überarbeitet. Optional kann jetzt bei der definition als weiterer Parameter ein Filename mit angegeben werden.
Wird dieser nicht angegeben, also z.B.
define Pelletoven HGNanopk 192.168.1.69 60
versucht das Modul ein file namens DAQ00001.DAQ zu laden.
Entsprechend heisst die Translation: DAQ00001.translation
und die status definition: DAQ00001.states

Wird das Modul mit:
define Pelletoven HGNanopk 192.168.1.69 60 configs/HGNano.DAQ

definiert, sucht das modul die daten unter $FHEMROOT/configs/HGNano.DAQ
und Entsprechend die Translation unter $FHEMROOT/configs/HGNano.translations,
sowie die states unter $FHEMROOT/configs/HGNano.states.

Ausserdem hab ich inzwischen ein GIT Repo, in dem das Modul abgelegt ist:
https://gitea.compuextreme.de/kueller/FHEM_Hargassner

Installation also wie folgt:
git clone https://gitea.compuextreme.de/kueller/FHEM_Hargassner
cd FHEM_Hargassner
cp 20_HGNanopk.pm $FHEMROOT/FHEM

Wichtig: for der Definition hier bereits beschrieben (und nochmal im Hilfstext zum Modul) das DAQ000*.DAQ file am Kessel auf eine SD Karte schreiben lassen, und dieses File
entsprechend in die Installation kopieren (default nach $FHEMROOT/DAQ00001.DAQ, oder alternativ entsprechend des filename arguments beim define

In dem git liegen auch die translation und states files die ich für meinen Brenner verwende.
fhem auf Fedora KVM instance mit >300 Homematic Devices

Navaho

Also ich komme mit beiden Modulen nicht ans Ziel. Beim 20_HGNanopk.pm generiert er zwar ein DAQ00001.translation was dann allerdings leer ist. Zeichencode der Ursprungsdatei ist erfolgt. Ich bekomme allerdings gar keine Readings und bei dem alten Modul habe ich auch das Problem, das das Python-Script nicht mehr dir der DAQ-Datei funktioniert.
Mein Pelletkessel ist vom Typ Nano.2 15.
Ich sehe auch im Logfile keinen Fehler.

hkueller

Hmm - Schwierig mit den Informationen zu debuggen.

beim aktuellen 20_HGNanopk.pm wird das vom Brenner ezerugte File NICHT (mehr) manuell bearbeitet - also keine Zeichenkodierung ändern, sondern wirklich 1:1 so wie es vom Brenner geschrieben wird, kopieren.

Die Anleitung in #13 ist in sofern veraltet - sowohl das dort beschriebene Löschen der Readings, als auch das umkodieren des files mit recode ist nicht mehr notwendig - Ehrlichgesagt hab ich auch keine Ahnung was das modul mit so einem File macht.. :-D - Wie es aussieht wird keinerder Parameter mehr richtig gefunden, daher ist das *.translation leer.

Die Umkodierung wird inzwischen vom 20_HGNano.pm selber vorgenommen.

Also zur Installation einfach, wie hier im Thread beschrieben, das DAQ0000x.DAQ file auf SD Card schreiben lassen und in dein FHEM Verzeichnis kopieren.
Danach den Brenner in FHEM mit:

    define <name> HGNanopk <hostname> <interval> [<filename;>]

Das Modul bring eine Online Hilfe mit, wo das auch nochmal beschrieben ist.

Wichtig:
das Perl Modul für

Unicode::String

Muss installiert sein, sonst funktioniert 20_HGNanopk.pm nicht! Das Modul wird verwendet um eben genau die Umkodierung im Modul zu machen, und nicht mehr mit der Shell!

Viele Grüße
Harald


Zitat von: Navaho am 18 April 2023, 17:51:58Also ich komme mit beiden Modulen nicht ans Ziel. Beim 20_HGNanopk.pm generiert er zwar ein DAQ00001.translation was dann allerdings leer ist. Zeichencode der Ursprungsdatei ist erfolgt. Ich bekomme allerdings gar keine Readings und bei dem alten Modul habe ich auch das Problem, das das Python-Script nicht mehr dir der DAQ-Datei funktioniert.
Mein Pelletkessel ist vom Typ Nano.2 15.
Ich sehe auch im Logfile keinen Fehler.
fhem auf Fedora KVM instance mit >300 Homematic Devices

Navaho

Sorry das ich jetzt erst dazu komme mich zu melden bzw. es noch einmal auszuprobieren.
Es läuft jetzt. Ich muss mir allerdings noch die Bezeichnungen der Werte vornehmen bzw. überprüfen.
Ich hatte die Zeichencodierung manuell angewendet, was ja nicht mehr erforderlich war und ich habe jetzt den gesamten Pfad für den Datei DAQ00000.DAQ bei der Definition mit angegeben.
Als er diese nicht bei mir finden konnte ist FHEM bei mir komplett ausgestiegen.

Vielen Dank für die notwendigen Infos.


Zitat von: hkueller am 19 April 2023, 09:43:48Hmm - Schwierig mit den Informationen zu debuggen.

beim aktuellen 20_HGNanopk.pm wird das vom Brenner ezerugte File NICHT (mehr) manuell bearbeitet - also keine Zeichenkodierung ändern, sondern wirklich 1:1 so wie es vom Brenner geschrieben wird, kopieren.

Die Anleitung in #13 ist in sofern veraltet - sowohl das dort beschriebene Löschen der Readings, als auch das umkodieren des files mit recode ist nicht mehr notwendig - Ehrlichgesagt hab ich auch keine Ahnung was das modul mit so einem File macht.. :-D - Wie es aussieht wird keinerder Parameter mehr richtig gefunden, daher ist das *.translation leer.

Die Umkodierung wird inzwischen vom 20_HGNano.pm selber vorgenommen.

Also zur Installation einfach, wie hier im Thread beschrieben, das DAQ0000x.DAQ file auf SD Card schreiben lassen und in dein FHEM Verzeichnis kopieren.
Danach den Brenner in FHEM mit:

    define <name> HGNanopk <hostname> <interval> [<filename;>]

Das Modul bring eine Online Hilfe mit, wo das auch nochmal beschrieben ist.

Wichtig:
das Perl Modul für

Unicode::String

Muss installiert sein, sonst funktioniert 20_HGNanopk.pm nicht! Das Modul wird verwendet um eben genau die Umkodierung im Modul zu machen, und nicht mehr mit der Shell!

Viele Grüße
Harald


Zitat von: Navaho am 18 April 2023, 17:51:58Also ich komme mit beiden Modulen nicht ans Ziel. Beim 20_HGNanopk.pm generiert er zwar ein DAQ00001.translation was dann allerdings leer ist. Zeichencode der Ursprungsdatei ist erfolgt. Ich bekomme allerdings gar keine Readings und bei dem alten Modul habe ich auch das Problem, das das Python-Script nicht mehr dir der DAQ-Datei funktioniert.
Mein Pelletkessel ist vom Typ Nano.2 15.
Ich sehe auch im Logfile keinen Fehler.


hkueller

Hmm komplett aussteigen hätte fhem eigentlich nicht dürfen..
Aber freut mich wenn es jetzt geht. In dem git repo liegt auch schon eine Translation, die ich selber verwende - Ich kenn mich damit aber auch nicht so optimal aus. Von daher, wenn du da Verbesserungen hast, wäre ich sehr intressiert :-D

Viele Grüße
Harald

Zitat von: Navaho am 09 Mai 2023, 10:14:52Sorry das ich jetzt erst dazu komme mich zu melden bzw. es noch einmal auszuprobieren.
Es läuft jetzt. Ich muss mir allerdings noch die Bezeichnungen der Werte vornehmen bzw. überprüfen.
Ich hatte die Zeichencodierung manuell angewendet, was ja nicht mehr erforderlich war und ich habe jetzt den gesamten Pfad für den Datei DAQ00000.DAQ bei der Definition mit angegeben.
Als er diese nicht bei mir finden konnte ist FHEM bei mir komplett ausgestiegen.

Vielen Dank für die notwendigen Infos.


Zitat von: hkueller am 19 April 2023, 09:43:48Hmm - Schwierig mit den Informationen zu debuggen.

beim aktuellen 20_HGNanopk.pm wird das vom Brenner ezerugte File NICHT (mehr) manuell bearbeitet - also keine Zeichenkodierung ändern, sondern wirklich 1:1 so wie es vom Brenner geschrieben wird, kopieren.

Die Anleitung in #13 ist in sofern veraltet - sowohl das dort beschriebene Löschen der Readings, als auch das umkodieren des files mit recode ist nicht mehr notwendig - Ehrlichgesagt hab ich auch keine Ahnung was das modul mit so einem File macht.. :-D - Wie es aussieht wird keinerder Parameter mehr richtig gefunden, daher ist das *.translation leer.

Die Umkodierung wird inzwischen vom 20_HGNano.pm selber vorgenommen.

Also zur Installation einfach, wie hier im Thread beschrieben, das DAQ0000x.DAQ file auf SD Card schreiben lassen und in dein FHEM Verzeichnis kopieren.
Danach den Brenner in FHEM mit:

    define <name> HGNanopk <hostname> <interval> [<filename;>]

Das Modul bring eine Online Hilfe mit, wo das auch nochmal beschrieben ist.

Wichtig:
das Perl Modul für

Unicode::String

Muss installiert sein, sonst funktioniert 20_HGNanopk.pm nicht! Das Modul wird verwendet um eben genau die Umkodierung im Modul zu machen, und nicht mehr mit der Shell!

Viele Grüße
Harald


Zitat von: Navaho am 18 April 2023, 17:51:58Also ich komme mit beiden Modulen nicht ans Ziel. Beim 20_HGNanopk.pm generiert er zwar ein DAQ00001.translation was dann allerdings leer ist. Zeichencode der Ursprungsdatei ist erfolgt. Ich bekomme allerdings gar keine Readings und bei dem alten Modul habe ich auch das Problem, das das Python-Script nicht mehr dir der DAQ-Datei funktioniert.
Mein Pelletkessel ist vom Typ Nano.2 15.
Ich sehe auch im Logfile keinen Fehler.

fhem auf Fedora KVM instance mit >300 Homematic Devices

hkueller

Heute war der Hargassner Techniker bei mir - Fehlerstromaufnahme Entaschung zu hoch. Ursache waren die Turbolatoren, die sich verzogen hatten.
Im Rahmen der Reperatur wurde eine neue Firmware aufgespielt. Leider haben die die Daten etwas durcheinander gepustet, und die Header verändert.
Ich habe das Modul angepasst:

# git clone https://gitea.compuextreme.de/kueller/FHEM_Hargassner.git
Nach dem Update des Modules bitte das Translation File einmal weg schieben, und ein neues (natürlich ohne die translations) erzeugen lassen.
Danach müssen die Übersetzungen wieder eingepflegt werden.
Ein bereits angepasstes translation file liegt im gitea Projekt.

Beste Grüße
Harald
fhem auf Fedora KVM instance mit >300 Homematic Devices