[gelöst] Ökofen Pelletheizung einbinden über HTTPMOD

Begonnen von JueFi, 08 November 2014, 11:43:21

Vorheriges Thema - Nächstes Thema

JueFi

Hallo zusammen,

wie heißt es so schön "I'm new to FHEM" ;-)

Ich habe mich mal ein bisschen eingelesen und versuche abzuschätzen, ob sich ein Einstieg lohnt.

Ich habe folgende Heizung:
Ökofen Pellematic kombiniert mit Solarkollektoren, die ebenfalls an der Heizungssteuerung angeschlossen sind.
Folgende Infos finde ich zur Steuerung:
Bedienteil   Touch V02.00j 20131401 V02.00m 20130910
CMP1 TO_VA640   (Kesselsteuerung)
HKR1 BOOTLOADER: Lpc17xxBootloader_0.12
HKR1 FIRMWARE: IM110_FW_0.07


Ich möchte folgendes tun:
1. Auslesen von Messwerten zur grafischen Darstellung
- Ob die Steuerung eine Schnittstelle hat die das kann, weiß ich leider nicht
- Die Daten sind im Web-Interface verfügbar. Ob man die auslesen kann bin ich mir aber nicht sicher. Im Source-Text der Seite sehe ich die nicht.
- Die Anlage schreibt jede Minute einen Log-Datensatz auf einen USB-Stick. Gibt es vielleicht ein Gerät, dass sich einerseits wie ein USB-Stick verhält, aber andererseits per IP ansprechbar ist, um Dateien zu übertragen, die auf dem Stick sind.

**************
2. Würde ich gern abhängig von Wetterdaten und Messwerten die Heizung umprogrammieren.
Also im einfachsten Fall, den Start des Pelletbrenners verzögern um auf die Sonne zu warten. Falls eine Mindesttemperatur unterschritten wird, den Brennner freigeben.
Ich brauche also "schreibenden" Zugriff auf die Heizungs-Steuerung.
- Entweder über eine Schnittstelle, sofern es die gibt
- oder über das Web-Interface.


Hat jemand Erfahrungen oder Ideen ?
Jede Rückmeldung ist willkommen.

Herzliche Grüße

Jürgen

Lösungsansatz:

  • Über die HTTPMOD Methode von Stefan - Danke :D - kann ich nun beliebige Werte aus der Steuerung der Heizung auslesen. (siehe Beispielgrafik)
  • Ebenso ist es möglich Änderungen in die Steuerung zu schreiben (z.B. Änderung der Betriebsart der Pellematic)
Als Basis für einen Start können diese Zeilen dienen
# ------ PelletHeizung

# regelmaessiges Abfragen von Werten (alle 180 Sekunden)
define PHeiz HTTPMOD http://<Deine IP>/?action=get&attr=1 180
# Wer will, kann die Datenmenge etwas reduzieren - damit wird der Plot etwas schneller
# attr PHeiz event-min-interval .*:600
# attr PHeiz event-on-change-reading .*

attr PHeiz reAuthRegex Error 403: Forbidden
attr PHeiz reading01Expr $val / 10
attr PHeiz reading01Name AussenTemp
attr PHeiz reading01Regex CAPPL:LOCAL.L_aussentemperatur_ist","value":"(-[0-9]+|[0-9]+)"

attr PHeiz reading02Expr $val / 10
attr PHeiz reading02Name KesselTemp
attr PHeiz reading02Regex CAPPL:FA\[0\].L_kesseltemperatur","value":"([0-9]+)"

attr PHeiz reading03Expr $val / 10
attr PHeiz reading03Name HeizKreis1_VL
attr PHeiz reading03Regex CAPPL:LOCAL.L_hk\[0\].vorlauftemp_ist","value":"([0-9]+)"

attr PHeiz reading04Expr $val / 10
attr PHeiz reading04Name HeizKreis2_VL
attr PHeiz reading04Regex CAPPL:LOCAL.L_hk\[1\].vorlauftemp_ist","value":"([0-9]+)"

attr PHeiz reading05Expr $val / 10
attr PHeiz reading05Name WarmWasserTemp
attr PHeiz reading05Regex CAPPL:LOCAL.L_ww\[0\].einschaltfuehler_ist","value":"([0-9]+)"

attr PHeiz reading06Expr $val / 10
attr PHeiz reading06Name SpeicherTempOben
attr PHeiz reading06Regex CAPPL:LOCAL.L_pu\[0\].einschaltfuehler_ist","value":"([0-9]+)"

attr PHeiz reading07Expr $val / 10
attr PHeiz reading07Name SpeicherTempMitte
attr PHeiz reading07Regex CAPPL:LOCAL.L_pu\[0\].ausschaltfuehler_ist","value":"([0-9]+)"

attr PHeiz reading08Expr $val / 10
attr PHeiz reading08Name SpeicherTempUnten
attr PHeiz reading08Regex CAPPL:LOCAL.L_sk\[0\].speichertemp_ist","value":"([0-9]+)"

attr PHeiz reading09Expr $val / 10
attr PHeiz reading09Name KollektorTemp
attr PHeiz reading09Regex CAPPL:LOCAL.L_sk\[0\].kollektortemp_ist","value":"(-[0-9]+|[0-9]+)"

# Status 0 statt 99 für "Aus" macht sich besser im Plot
attr PHeiz reading10Expr { $val % 99 }
attr PHeiz reading10Name KesselStatus
attr PHeiz reading10Regex CAPPL:FA\[0\].L_kesselstatus","value":"([0-9]+)"

attr PHeiz reading11Expr $val
attr PHeiz reading11Name SaugIntervall
attr PHeiz reading11Regex CAPPL:FA\[0\].L_saugintervall","value":"([0-9]+)"

attr PHeiz reading12Expr $val
attr PHeiz reading12Name BrennerLaufZeit
attr PHeiz reading12Regex CAPPL:FA\[0\].L_brennerlaufzeit_anzeige","value":"([0-9]+)"

attr PHeiz reading13Expr $val / 10
attr PHeiz reading13Name SolarErtrag
attr PHeiz reading13Regex CAPPL:LOCAL.ertrag\[0\].leistung_tag","value":"([0-9]+)"

attr PHeiz requestData ["CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesseltemperatur","CAPPL:LOCAL.L_hk[0].vorlauftemp_ist","CAPPL:LOCAL.L_hk[1].vorlauftemp_ist","CAPPL:LOCAL.L_ww[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_sk[0].speichertemp_ist","CAPPL:LOCAL.L_sk[0].kollektortemp_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[0].L_saugintervall","CAPPL:FA[0].L_brennerlaufzeit_anzeige","CAPPL:LOCAL.ertrag[0].leistung_tag"]

attr PHeiz requestHeader1 Accept-Language: de
attr PHeiz requestHeader2 Cookie: language=de;; pksession=$sid
attr PHeiz room Heizung

attr PHeiz timeout 10

# für das Setzen eines Wertes (Betriebsart der Pellematic)
attr PHeiz set1Data {"CAPPL:FA[0].betriebsart_fa":"$val"}
attr PHeiz set1Map 0:Aus,1:Auto,2:Ein
attr PHeiz set1Name Betriebsart
attr PHeiz setHeader1 Accept-Language: de
attr PHeiz setHeader2 Cookie: language=de;; pksession=$sid
attr PHeiz setReAuthRegex Error 403: Forbidden
attr PHeiz setURL http://<Deine IP>/?action=set

# für die Anmeldung
attr PHeiz sidURL http://<Deine IP>/index.cgi
attr PHeiz sid1Data username=DeinUser&password=DeinGeheimesPasswort&language=de&submit=Anmelden
attr PHeiz sid1Header1 Accept-Language: de
attr PHeiz sid1IDRegex pksession=([0-9]+);;
attr PHeiz sid1IgnoreRedirects 1

# Logging
define FileLog_PHeiz FileLog ./log/PHeiz-%Y-%m.log PHeiz
attr FileLog_PHeiz room Heizung

# Plots
define SVG_FileLog_PHeiz_1 SVG FileLog_PHeiz:SVG_FileLog_PHeiz_1:CURRENT
attr SVG_FileLog_PHeiz_1 label sprintf("AußenTemp- Min: %.1f / Max: %.1f / Dif: %.1f / Akt: %.1f", $data{min8}, $data{max8}, $data{max8}-$data{min8}, $data{currval8})
attr SVG_FileLog_PHeiz_1 room Heizung
attr SVG_FileLog_PHeiz_1 title "Heizung"

define SVG_FileLog_PHeiz_2 SVG FileLog_PHeiz:SVG_FileLog_PHeiz_2:CURRENT
attr SVG_FileLog_PHeiz_2 label sprintf("BrennerStd Heute: %.0f / Sum: %.0f / SolarErtrag: %.1f kWh", $data{currval3}-$data{min3}, $data{currval3}, $data{max4})
attr SVG_FileLog_PHeiz_2 room Heizung
attr SVG_FileLog_PHeiz_2 title "Heizung 2"


Im Anhang noch ein Screenshot, wie ein Plot aussehen könnte und die Plot-Dateien
EDIT: 15.12.14:
- Ein paar weitere Werte abgefragt
- Anzeige der Außentemperatur über dem Plot
- Anzeige der "BrennerStunden Heute" über dem Plot
- Anzeige des "Solarertrags Heute" über dem Plot
EDIT: 27.12.14: Negative Werte in der Außen- und Kollektor-Temperatur verarbeiten (Danke an Moonraker1)
EDIT: 17.4.16: Folgende zusätzliche Zeile ist mittlerweile in meiner fhem.cfg - ich habe die nicht erzeugt, wurde evtl. durch ein Update erzeugt
attr PHeiz userattr event-min-interval event-on-change-reading reAuthRegex reading01Expr reading01Name reading01Regex reading02Expr reading02Name reading02Regex reading03Expr reading03Name reading03Regex reading04Expr reading04Name reading04Regex reading05Expr reading05Name reading05Regex reading06Expr reading06Name reading06Regex reading07Expr reading07Name reading07Regex reading08Expr reading08Name reading08Regex reading09Expr reading09Name reading09Regex reading10Expr reading10Name reading10Regex reading11Expr reading11Name reading11Regex reading12Expr reading12Name reading12Regex reading13Expr reading13Name reading13Regex requestData requestHeader1 requestHeader2 set1Data set1Map set1Name setHeader1 setHeader2 setReAuthRegex setURL sid1Data sid1Header1 sid1IDRegex sid1IgnoreRedirects sidURL timeout


Hier noch eine Anleitung zum Finden und Auslesen weiterer Werte.
http://forum.fhem.de/index.php/topic,28844.msg234170.html#msg234170

EDIT: 16.01.18: Die Werte für den "Kesselstatus" sind
1 Softstart
2 Zündung
4 Leistungsbrand
5 Nachlauf

7 Saugen
99 Aus

drdownload

Wenn das Ding ein Webinterface hat ist es schon mal gut, wenn du die Daten nciht direkt in der Source siehst, werden sie wahrscheinlich über JS nachgeladen oder das ist ein Flash Applet geladen. Wenn man das Ding über Web-Interface nicht steuern kann ist es natürlich schon mal schwer diesen Teil abzudecken. Für die meisten Heizung gibt es aber Module um zb über GSM zu steuern (Bluetooth bei Pelletsöfen die Wohnzimmer stehen, aber ja hier nicht der Fall ist)
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

drdownload

Ok, die Daten rauskriegen kann keine Zauberei sein, hier hätte jemand ein Python Skript geschrieben (nicht für FHEM, aber prinzipiell) das die Infos parst und in einen RRD Chart packt.
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

JueFi

Man kann es schon über das WebInterface steuern.
Hier habe ich eine Idee bekommen http://forum.fhem.de/index.php/topic,24876.msg179586.html#msg179586
und mal einen WireShark-Trace gemacht, in dem man sieht, wie der Refresh läuft, wenn man auf einer Seite steht.

Ich habe mal mit AutoIt versucht das nachzubilden, da komme ich aber nicht über die Anmeldung am WebInterface hinweg.
Wenn ich versuche, den Refresh aufzurufen kommt HTTP Code 403 zurück.

Wie kann ich den Trace hochladen ?

JueFi

Zitat von: drdownload am 08 November 2014, 20:39:23
Ok, die Daten rauskriegen kann keine Zauberei sein, hier hätte jemand ein Python Skript geschrieben (nicht für FHEM, aber prinzipiell) das die Infos parst und in einen RRD Chart packt.
Kann ich mir das Script mal anschauen ?

drdownload

CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

JueFi

Besten Dank  :D
Das sieht sehr vielversprechenden aus.
Mal schauen was ich daraus machen kann

drdownload

#7
Hi, uU könntest du Dir ja den Umweg über MQTT ansehen. Ich hätte jetzt zB gedacht, dass man die Daten mit einer Abwandlung des Pythonskripts holt und über das MQTT Modul in FHEM reinpusht (das Steuern wäre so auch möglich -> http://www.cloudmqtt.com/docs-python.html (wäre für die Umsetzungsdauer wohl das schnellste)
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

JueFi

Ich habe jetzt ein Python Script (im Moment unter Windows laufen, da mein Raspberry es noch nicht bis zu mir geschafft hat :-( )
>    pellematic-temp.py
Der Output sieht so aus
Outside_Temp_Act.value 9.70
Boiler_Temp.value 62.60
Boiler_Temp_Set.value 8.00
TPO_Act.value 53.70
TPO_Set.value 48.10
TPM_Act.value 32.70
TPM_Set.value 48.10
Flow_Temp_Act.value 42.50
Flow_Temp_Set.value 43.10
Room_Temp_Heating.value 22.00
Room_Temp_Set_Back_Set.value 18.00
H_Limit_Heating.value 18.00
H_Limit_Set_Back.value -5.00
Flow_Temp_Act.value 38.50
Flow_Temp_Set.value 43.10
Room_Temp_Heating.value 22.00
Room_Temp_Set_Back_Set.value 18.00
H_Limit_Heating.value 18.00
H_Limit_Set_Back.value -5.00
Switch_On_Sensor_Act.value 61.20

Wie würde ich die Daten in FHEM bekommen, um Grafiken zu erzeugen ?

JueFi

Hallo zusammen

nachdem es nun die erweiterte Version von HTTPMOD gibt, denke ich, dass wäre der richtige Ansatz.
Zuerst bräuchte ich mal Hilfe, um mich erfolgreich einzuloggen und Werte abzufragen.
Die Kür wird dann das setzen von Werten.
Ich habe das mal in 3 Schritte aufgeteilt die ich mit Burp aufgezeichnet habe.
Ich hoffe das reicht so
1. Aufruf der URL http://192.168.68.250
2. Einloggen
3. Setzen der Betriebsart

Ich teile das mal in mehrere Posts auf

Aufruf http://192.168.68.250

GET /lang/language.cgi?nojquery=1 HTTP/1.1
Host: 192.168.68.250
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.68.250/login.cgi
Cookie: language=de
Connection: keep-alive



HTTP/1.1 200 OK
Connection: keep-alive
Content-Type: text/javascript; charset=utf-8

var Lang = {
__current: "de",
__available: {
"de": "Deutsch"
,
"en": "English"
,
"fr": "Francais"
,
"it": "Italiano"
,
"nl": "Nederlands"
,
"cs": "Cestina"
,
"es": "Espanol"
,
"da": "Dansk"
,
"ru": "pyccknn"
}
,
"Anmelden": "Anmelden"
,
"Benutzername": "Benutzername"
,
"Passwort": "Passwort"
,
"Sprache": "Sprache"
,
"LoginFehler": "Sie konnten nicht angemeldet werden. Bitte prüfen Sie Ihre Eingaben."
,
"SeiteWirdGeladen": "Die Seite wird geladen, bitte warten..."
,
"SeiteNichtGefunden_Titel": "Seite nicht gefunden"
,
"SeiteNichtGefunden_Text": "Die von Ihnen gewünschte Seite konnte leider nicht gefunden werden."
,
"Kommunikationsprobleme_Titel": "Kommunikationsprobleme"
,
"Kommunikationsprobleme_Text": "Bitte prüfen Sie Ihre Verbindung zur Pelletronic."
,
"Abmelden": "Abmelden"
,
"Messwerte": "Messwerte"
,
"Ist": "Ist"
,
"Soll": "Soll"
,
"Meldungen": "Meldungen"
,
"Aussentemperatur": "Außentemperatur"
,
"PU_TPO": "PU$ TPO"
,
"PU_TPM": "PU$ TPM"
,
"PU_Pumpe": "PU$ Pumpe"
,
"HK_Vorlauftemp": "HK$ Vorlauftemperatur"
,
"HK_Raumtemp": "HK$ Raumtemperatur"
,
"HK_Pumpe": "HK$ Pumpe"
,
"SO_Kollektortemp": "SO$ Kollektortemp"
,
"SO_SpeicherUnten1": "SO$ Speicher Unten 1"
,
"SO_SpeicherUnten2": "SO$ Speicher Unten 2"
,
"SO_Pumpe1": "SO$ Pumpe 1"
,
"SO_Pumpe2": "SO$ Pumpe 2"
,
"SO_Vorlauftemp": "SO$ Vorlauftemp"
,
"SO_Ruecklauftemp": "SO$ Rücklauftemp"
,
"SO_Durchfluss": "SO$ Durchfluss"
,
"SO_Ertrag": "SO$ Ertrag"
,
"Hauptmenue": "Hauptmenü"
,
"Betriebsart": "Betriebsart"
,
"Heizkreis": "Heizkreis $"
,
"Solar": "Solar $"
,
"Puffer": "Puffer $"
,
"Code": "Code"
,
"Anlage": "Anlage"
,
"SO_Solarkreis1": "SO$ Solarkreis 1"
,
"SO_Solarkreis2": "SO$ Solarkreis 2"
,
"Raumtemp_Heizen": "Raumtemp Heizen"
,
"Raumtemp_Absenken": "Raumtemp Absenken"
,
"Zeitauswahl": "Zeitauswahl"
,
"Zeit": "Zeit $"
,
"Party": "Party"
,
"Urlaub": "Urlaub"
,
"Heizkurve": "Heizkurve"
,
"Einstellungen": "Einstellungen"
,
"Partyprogramm": "Partyprogramm"
,
"Endzeit": "Endzeit"
,
"Urlaubsprogramm": "Urlaubsprogramm"
,
"RaumtempUrlaub": "Raumtemp Urlaub"
,
"Startzeit": "Startzeit"
,
"Fusspunkt": "Fußpunkt"
,
"Heizgrenze_Heizen": "Heizgrenze Heizen"
,
"Heizgrenze_Absenken": "Heizgrenze Absenken"
,
"Vorhaltezeit": "Vorhaltezeit"
,
"Raumfuehlereinfluss": "Raumfühlereinfluss"
,
"RaumtempHysterese": "Raumtemp Hysterese"
,
"Vorlauftemp_Max": "Vorlauftemp Max"
,
"Vorlauftemp_Min": "Vorlauftemp Min"
,
"Ueberhoehung": "Überhöhung"
,
"MischerVorhanden": "Mischer vorhanden"
,
"MischerAuf": "Mischer Auf"
,
"MischerAus": "Mischer Aus"
,
"MischerZu": "Mischer Zu"
,
"RegelbereichKT": "Regelbereich KT"
,
"RegelbereichVL": "Regelbereich VL"
,
"KesseltempAnstieg": "<strong>Kesseltemp Verlauf</strong><br />Temp Anstieg"
,
"KesseltempRegelbereich": "<strong>Kesseltemp Verlauf</strong><br />Regelbereich"
,
"Kreis1": "Kreis 1"
,
"Kreis2": "Kreis 2"
,
"Speichertemp_Max": "Speichertemperatur Max"
,
"SpeicherHyst": "Speicher Hysterese"
,
"KollektorHyst_Ein": "Kollektor Hyst Ein"
,
"KollektorHyst_Aus": "Kollektor Hyst Aus"
,
"AbschaltungUeberhitzung": "<strong>Solarabschaltung</strong><br />Kollektorüberhitzung"
,
"SpuelvorgangStart": "<strong>Spülvorgang</strong><br />Startzeit"
,
"PrioLaufzeit": "<strong>Prio</strong><br />Laufzeit"
,
"PuffertempMinEin": "Puffertemp Min Ein"
,
"AbnehmerpumpeFreigabetemp": "<strong>Abnehmerpumpe</strong><br />Freigabetemperatur"
,
"PufferladeNachlaufzeit": "<strong>Pufferladepumpe</strong><br />Nachlaufzeit"
,
"Internet": "Internet"
,
"MailZusatzinfo": "Mail Zusatzinfo"
,
"Postausgang": "Postausgang"
,
"MailBenutzer": "Mail Benutzer"
,
"MailPasswort": "Mail Passwort"
,
"MailEmpfaenger": "Mail Empfänger $"
,
"Codeeingabe": "Codeeingabe"
,
"Zeitformat": "HH:mm"
,
"StundenFormat": "24"
,
"Datumsformat": "dd.MM.yyyy"
,
"Dezimaltrenner": ","
,
"Nummerngruppentrenner": "."
,
"ZeitWaehlen": "Zeit wählen"
,
"Zeitangabe": "Zeit"
,
"Stunde": "Stunde"
,
"Minute": "Minute"
,
"Sekunde": "Sekunde"
,
"Jetzt": "Jetzt"
,
"Fertig": "Fertig"
,
"OK": "OK"
,
"Abbrechen": "Abbrechen"
,
"Info_Bereich": "Der Wert muss zwischen {min} und {max} {einheit} liegen."
,
"Info_Passwort": "Passwort und Passwortwiederholung müssen identisch und nicht leer sein."
,
"Info_Text": "Der Wert darf nicht leer sein."
,
"NeuesPasswort": "Neues Passwort"
,
"NeuesPasswortWiederholung": "Neues Passwort (Wiederholung)"
,
"WertWirdGespeichert": "Wert wird gespeichert..."
,
"WertGespeichert_Erfolg": "Wert erfolgreich gespeichert."
,
"WertGespeichert_Fehler_Titel": "Fehler beim Speichern des Wertes"
,
"WertGespeichert_Fehler_Text": "Prüfen Sie Ihre Eingabe und die Verbindung zur Pelletronic."
,
"CodeWirdGeprueft": "Code wird geprüft..."
,
"CodeGeprueft_Erfolg_Titel": "Code akzeptiert"
,
"CodeGeprueft_Erfolg_Text": "Codeebene $ freigeschaltet"
,
"CodeGeprueft_Fehler": "Der angegebene Code ist ungültig."
,
"Warmwasser": "Warmw $"
,
"Einmal_Aufbereiten": "Einmal Aufbereiten"
,
"Wassertemp_Soll": "Wassertemp Soll"
,
"Wassertemp_Min": "Wassertemp Min"
,
"PE_Kesseltemperatur": "PE$ Kesseltemperatur"
,
"PE_Abgastemperatur": "PE$ Abgastemperatur"
,
"PE_Feuerraumtemperatur": "PE$ Feuerraumtemperatur"
,
"PE_Kesselstatus": "PE$ Kesselstatus"
,
"PE_Einschubzeit": "PE$ Einschubzeit"
,
"PE_Pausenzeit": "PE$ Pausenzeit"
,
"PE_Luefter_Drehzahl": "PE$ Lüfter Drehzahl"
,
"PE_Abgasgebl_Drehzahl": "PE$ Abgasgebl Drehzahl"
,
"PE_Unterdruck": "PE$ Unterdruck"
,
"PE_Drehzahl_UW": "PE$ Drehzahl UW"
,
"PE_Brennerkontakt": "PE$ Brennerkontakt"
,
"PE_Kap_RA": "PE$ Kap RA"
,
"PE_Kap_ZW": "PE$ Kap ZW"
,
"PE_Brandschutzklappe": "PE$ Brandschutzklappe"
,
"PE_Best_Kessel": "PE$ Best Kessel"
,
"PE_Zuendtemperatur": "PE$ Zündtemperatur"
,
"PE_Akt_Zuendzeit": "PE$ Akt Zündzeit"
,
"PE_Fuellst_Aktuell": "PE$ Füllst Aktuell"
,
"PE_Fuellst_Zwischenb": "PE$ Füllst Zwischenb"
,
"PE_Pelletsfuellstand": "PE$ Pelletsfüllstand"
,
"PE_Brennerstarts": "PE$ Brennerstarts"
,
"PE_Brennerlaufzeit": "PE$ Brennerlaufzeit"
,
"PE_Mittlere_Laufzeit": "PE$ Mittlere Laufzeit"
,
"PE_Stillstandszeit": "PE$ Stillstandszeit"
,
"PE_Anzahl_Zuendung": "PE$ Anzahl Zündung"
,
"PE_Saugintervall": "PE$ Saugintervall"
,
"PE_Turbine": "PE$ Turbine"
,
"PE_Gluehstab": "PE$ Glühstab"
,
"PE_Motor_Asche": "PE$ Motor Aschebox"
,
"PE_Motor_Reinigung": "PE$ Motor_Reinigung"
,
"PE_Stoermelderelais": "PE$ Störmelderelais"
,
"PE_Motor_RA1": "PE$ Motor RA1"
,
"PE_Motor_Res1": "PE$ Motor Res1"
,
"PE_Motor_Einschub": "PE$ Motor Einschub"
,
"PE_Magnetventil": "PE$ Magnetventil"
,
"PE_Drehzahl_Frischw": "PE$ Drehzahl Frischw"
,
"PE_Frischw_Temp": "PE$ Frischwasser Temp"
,
"PE_Drehzahl_Asche": "PE$ Drehzahl Asche"
,
"Messwerte": "Messwerte"
,
"Pellematic": " Pellematic $"
,
"Vorrang": "Vorrang"
,
"Ueberhoehung": "Überhöhung"
,
"Nachlaufzeit": "Nachlaufzeit"
,
"Einschalthysterese": "Einschalthysterese"
,
"Legionellenschutz": "Legionellenschutz"
,
"Zuendung": "Zuendung"
,
"Leistungsbrand": "Leistungsbr"
,
"Nachlauf": "Nachlauf"
,
"Entaschung": "Entaschung"
,
"Reinigung": "Reinigung"
,
"Saugturbine": "Saugturbine"
,
"Frischwasser": "Frischwasser"
,
"Unterdruck": "Unterdruck"
,
"FRT_Control": "FRT Control"
,
"Fuellstand": "Füllstand"
,
"Umwaelzpumpe": "Umwälzp"
,
"Ausgaenge": "Ausgaenge"
,
"Einstellungen": "Einstellungen"
,
"Einschubzeit": "Einschubzeit"
,
"Pausenzeit": "Pausenzeit"
,
"Luefter": "Lüfter"
,
"Abgasgeblaese": "Abgasgebläse"
,
"Hyst_Abgastemperatur": "Hysterese Abgastemp"
,
"Min_Abgastemperatur": "Min Abgastemperatur"
,
"Max_Abgastemperatur": "Max Abgastemperatur"
,
"Brennstoffkorrektur": "Brennstoffkorrektur"
,
"Luftmenge_plus": "Luftmenge ++"
,
"Abgasgeblaese_plus": "Abgasgebläse ++"
,
"Luefter_Nachlaufzeit": "Luefter Nachlaufzeit"
,
"Abgasgebl_Nachlaufzeit": "Abgasgebl Nachlaufzeit"
,
"AGT_KT_Luefter_aus": "AGT + KT Lüfter aus"
,
"AGT_KT_Abgasgebl_aus": "AGT + KT Abgasgebl aus"
,
"FRT_KT_Luefter_aus": "FRT + KT Lüfter aus"
,
"FRT_KT_Abgasgebl_aus": "FRT + KT Abgasgebl aus"
,
"Modus": "Modus"
,
"Mindestlaufzeit": "Mindestlaufzeit"
,
"Austragungsdauer": "Austragungsdauer"
,
"Kessel_Nachlaufzeit": "Kessel Nachlaufzeit"
,
"Reinigung_Befuellung": "Reinigung / Befüllung"
,
"Reinigung2": "Reinigung 2"
,
"Reinigungszeit": "Reinigungszeit"
,
"Sollwert": "Sollwert"
,
"Fehlerzeit": "Fehlerzeit"
,
"Minimum": "Minimum"
,
"Maximum": "Maximum"
,
"Waschen": "Waschen"
,
"Verstaerkung": "<strong>PID Regler</strong><br />Verstärkung"
,
"Zeit_Integralanteil": "<strong>PID Regler</strong><br />Zeit Integralanteil"
,
"Zeit_Diff_Anteil": "<strong>PID Regler</strong><br />Zeit Diff Anteil"
,
"Min_Temperatur": "Minimum Temperatur"
,
"Sollwert_plus": "Sollwert ++"
,
"Begrenzung_oben": "Begrenzung Oben"
,
"Begrenzung_unten": "Begrenzung Unten"
,
"Schwellwert": "Schwellwert"
,
"Korrekturwert": "Korrekturwert"
,
"Fuellmenge": "Füllmenge"
,
"Freigabetemperatur": "Freigabetemperatur"
,
"Anforderungsabhaengig": "Anforderungsabhängig"
,
"Drehzahlregelung_Standard": "Drehzahlregelung"
,
"Ausschalthysterese": "Ausschalthysterese"
,
"Nachlaufzeit": "Nachlaufzeit"
,
"Regelbereich": "Regelbereich"
,
"Befuellung": "Befüllung"
,
"Takt_RA_Motor": "Takt RA Motor"
,
"Pause_RA_Motor": "Pause RA Motor"
,
"Saugintervall": "Saugintervall"
,
"Regeltemperatur": "Regeltemperatur"
,
"Abschalttemperatur": "Abschalttemperatur"
,
"AGT_Minimum": "AGT Minimum"
,
"RA_Verzoegerung": "RA Verzögerung"
,
"Brenneranforderung": "Brenneranforderung"
,
"Stoermeldemodus": "Störmeldemodus"
,
"Kap_RA_aktiv": "<strong>Kapazitiver Sensor</strong><br />RA aktiv"
,
"Kap_ZW_aktiv": "<strong>Kapazitiver Sensor</strong><br />ZW aktiv"
,
"Turbine": "Turbine"
,
"Gluehstab": "Glühstab"
,
"Aschebox": "Aschebox"
,
"Magnetvent": "Magnetvent"
,
"Reinigung": "Reinigung"
,
"Abgasgeblaese": "Abgasgebläse"
,
"Umwaelzp": "Umwälzp"
,
"Raumaustr": "Raumaustr"
,
"Einschub": "Einschub"
,
"Luefter": "Lüfter"
,
"Brandsich": "Brandsich"
,
"Frischwasser": "Frischwasser"
,
"Reserve1": "Reserve1"
,
"Schichtung": "Schichtung"
,
"Stromschwelle_Min": "Stromschwelle Min"
,
"Stromschwelle_Max": "Stromschwelle Max"
,
"Fehlerzeit_Min": "Fehlerzeit Min"
,
"Fehlerzeit_Max": "Fehlerzeit Max"
,
"Strom_Istwert": "Strom Istwert"
,
"Spannung_Istwert": "Spannung Istwert"
,
"Betriebsstunden": "Betriebsstunden"
,
"Soft_Temp_Aenderung_dt_dT": "<strong>Softstart</strong><br />Temp Änderung dt/dT"
,
"Soft_Luftmenge": "<strong>Softstart</strong><br />Lüfter"
,
"Soft_Abgasgeblaese": "<strong>Softstart</strong><br />Abgasgebläse"
,
"Startzeit_Zuendung": "<strong>Einschubzyklus</strong><br />Startzeit Zündung"
,
"BSK_1_zu": "<strong>Einschubzyklus</strong><br />BSK 1er Versuch Zu"
,
"BSK_2_auf": "<strong>Einschubzyklus</strong><br />BSK 2er Versuch Auf"
,
"BSK_2_zu": "<strong>Einschubzyklus</strong><br />BSK 2er Versuch Zu"
,
"BSK_3_auf": "<strong>Einschubzyklus</strong><br />BSK 3er Versuch Auf"
,
"BSK_3_zu": "<strong>Einschubzyklus</strong><br />BSK 3er Versuch Zu"
,
"BSK_4_auf": "<strong>Einschubzyklus</strong><br />BSK 4er Versuch Auf"
,
"BSK_4_zu": "<strong>Einschubzyklus</strong><br />BSK 4er Versuch Zu"
,
"Zeit_Flamm": "Zeit Flammüberwachung"
,
"Regelzeit_auf": "Regelzeit Auf"
,
"Regelzeit_ab": "Regelzeit Ab"
,
"Zeit_Sollwerterhoehung": "Zeit Sollwerterhöhung"
,
"Max_Saugzeit": "Maximale Saugzeit"
,
"RA_Nachlaufzeit": "Nachlaufzeit RA"
,
"Kessel_min_Laufzeit": "Kessel min Laufzeit"
,
"Min_Laufz_ohne_Zuend": "Min Laufz ohne Zuend"
,
"Ansprechzeit_Kap_ZWB": "<strong>Kapazitiver Sensor</strong><br />Ansprechz ZWB"
,
"Ansprechzeit_Kap": "<strong>Kapazitiver Sensor</strong><br />Ansprechzeit"
,
"Belueftung_Zeit": "<strong>Belüftung</strong><br />Zeit"
,
"Belueftung_Luefter": "<strong>Belüftung</strong><br />Lüfter"
,
"Belueftung_Abgasgebl": "<strong>Belüftung</strong><br />Abgasgebl"
,
"Einschub_min": "<strong>Grenzen</strong><br />Einschub Minimum"
,
"Luefter_min": "<strong>Grenzen</strong><br />Lüfter Minimum"
,
"Abgasgebl_min": "<strong>Grenzen</strong><br />Abgasgebl Minimum"
,
"Waschdauer": "Waschdauer"
,
"PE_Strom_Istwert": "Strom Istwert"
,
"PE_Spannung_Istwert": "Spannung Istwert"
,
"PE_Betriebsstunden": "Betriebsstunden"
,
"WW_Ein_Temp": "WW$ Ein Temperatur"
,
"WW_Aus_Temp": "WW$ Aus Temperatur"
,
"WW_Pumpe": "WW$ Pumpe"
,
"KollektorregelungModus": "<strong>Kollektorregelung</strong><br />Modus"
,
"KollektorregelungMinTemp": "<strong>Kollektorregelung</strong><br />Minimum Temp"
,
"KollektorregelungRegelbereich": "<strong>Kollektorregelung</strong><br />Regelbereich"
,
"AbschaltungHyst": "<strong>Solarabschaltung</strong><br />Kollektor Hyst"
,
"PumpeVentil": "<strong>Pumpe</strong><br />Pumpe/Ventil"
,
"Pumpentyp": "<strong>Pumpe</strong><br />Pumpentyp"
,
"Drehzahlregelung": "<strong>Pumpe</strong><br />Drehzahlregelung"
,
"KollektorschutzModus": "<strong>Kollektorschutz</strong><br />Modus"
,
"KollektorschutzSchutztemp": "<strong>Kollektorschutz</strong><br />Schutztemperatur"
,
"KollektorschutzHyst": "<strong>Kollektorschutz</strong><br />Hysterese"
,
"SpuelvorgangModus": "<strong>Spülvorgang</strong><br />Modus"
,
"SpuelvorgangPausenzeit": "<strong>Spülvorgang</strong><br />Pausenzeit"
,
"SpuelvorgangLaufzeit": "<strong>Spülvorgang</strong><br />Laufzeit"
,
"SpuelvorgangKollMin": "<strong>Spülvorgang</strong><br />Kollektor Min Temp"
,
"SpuelvorgangStop": "<strong>Spülvorgang</strong><br />Stopzeit"
,
"PrioModus": "<strong>Prio</strong><br />Modus"
,
"PrioPausenzeit": "<strong>Prio</strong><br />Pausenzeit"
,
"PrioSpuelzeit": "<strong>Prio</strong><br />Spuelzeit"
,
"PrioParallelbetrieb": "<strong>Parallelbetrieb</strong><br />Differenztemp"
,
"Begrenzungsfuehler": "Begrenzungsfühler"
,
"UnbekannterFehler": "Unbekannter Fehler"
,
"SO_Tagesertrag": "SO$ Tagesertrag"
,
"SO_Gesamtertrag": "SO$ Gesamtertrag"
,
"PufferladepumpeAnforderungsabhaengig": "<strong>Pufferladepumpe</strong><br />Anforderungsabhängig"
,
"PufferladepumpeDrehzahlregelung": "<strong>Pufferladepumpe</strong><br />Drehzahlregelung"
,
"PufferladepumpeAusschalthyst": "<strong>Pufferladepumpe</strong><br />Ausschalthysterese"
,
"PufferladepumpeRegelbereich": "<strong>Pufferladepumpe</strong><br />Regelbereich"
,
"Estrich": "Estrich"
,
"EstrichAktiv": "Modus"
,
"EstrichTaganzahl": "Anzahl Estrichtage"
,
"VorlauftempTag1": "Vorlauftemp Tag1"
,
"VorlauftempTag2": "Vorlauftemp Tag2"
,
"VorlauftempTag3": "Vorlauftemp Tag3"
,
"VorlauftempTag4": "Vorlauftemp Tag4"
,
"VorlauftempTag5": "Vorlauftemp Tag5"
,
"VorlauftempTag6": "Vorlauftemp Tag6"
,
"VorlauftempTag7": "Vorlauftemp Tag7"
,
"VorlauftempTag8": "Vorlauftemp Tag8"
,
"VorlauftempTag9": "Vorlauftemp Tag9"
,
"VorlauftempTag10": "Vorlauftemp Tag10"
,
"VorlauftempTag11": "Vorlauftemp Tag11"
,
"VorlauftempTag12": "Vorlauftemp Tag12"
,
"VorlauftempTag13": "Vorlauftemp Tag13"
,
"VorlauftempTag14": "Vorlauftemp Tag14"
,
"VorlauftempTag15": "Vorlauftemp Tag15"
,
"VorlauftempTag16": "Vorlauftemp Tag16"
,
"VorlauftempTag17": "Vorlauftemp Tag17"
,
"VorlauftempTag18": "Vorlauftemp Tag18"
,
"VorlauftempTag19": "Vorlauftemp Tag19"
,
"VorlauftempTag20": "Vorlauftemp Tag20"
,
"VorlauftempTag21": "Vorlauftemp Tag21"
,
"VorlauftempTag22": "Vorlauftemp Tag22"
,
"VorlauftempTag23": "Vorlauftemp Tag23"
,
"VorlauftempTag24": "Vorlauftemp Tag24"
,
"VorlauftempTag25": "Vorlauftemp Tag25"
,
"VorlauftempTag26": "Vorlauftemp Tag26"
,
"VorlauftempTag27": "Vorlauftemp Tag27"
,
"VorlauftempTag28": "Vorlauftemp Tag28"
,
"VorlauftempTag29": "Vorlauftemp Tag29"
,
"VorlauftempTag30": "Vorlauftemp Tag30"
,
"VorlauftempTag31": "Vorlauftemp Tag31"
,
"LiterProMinute": "Ertragsmessung Liter/Impuls"
,
"Systemregel": "Systemregel"
,
"KePumpenfreigabetemp": "<strong>Kessel</strong><br />Pumpenfreigabetemp"
,
"KeTempMin": "<strong>Kessel</strong><br />Temperatur Min"
,
"SysTempMax": "<strong>System</strong><br />Temperatur Max"
,
"ATMittelungszeit": "<strong>Aussentemperatur</strong><br />Mittelungszeit"
,
"FrostTemp": "<strong>Frostschutz</strong><br />Schutztemperatur"
,
"FrostSpuelzeit": "<strong>Frostschutz</strong><br />Spülzeit"
,
"FrostWartezeit": "<strong>Frostschutz</strong><br />Wartezeit"
,
"Kaskade": "Kaskade"
,
"ST1Abschaltueberhoehung": "<strong>Startnummer 1</strong><br />Abschaltüberhöhung"
,
"ST2Abschaltueberhoehung": "<strong>Startnummer 2</strong><br />Abschaltüberhöhung"
,
"ST3Abschaltueberhoehung": "<strong>Startnummer 3</strong><br />Abschaltüberhöhung"
,
"ST4Abschaltueberhoehung": "<strong>Startnummer 4</strong><br />Abschaltüberhöhung"
,
"ST2Sperrzeit": "<strong>Startnummer 2</strong><br />Sperrzeit"
,
"ST3Sperrzeit": "<strong>Startnummer 3</strong><br />Sperrzeit"
,
"ST4Sperrzeit": "<strong>Startnummer 4</strong><br />Sperrzeit"
,
"ST2Sperrtemp": "<strong>Startnummer 2</strong><br />Sperrtemperatur"
,
"ST3Sperrtemp": "<strong>Startnummer 3</strong><br />Sperrtemperatur"
,
"ST4Sperrtemp": "<strong>Startnummer 4</strong><br />Sperrtemperatur"
,
"BasisMin": "Kaskadenbasis Min"
,
"Folgewechsel": "Folgewechsel"
,
"Spitzenlastkessel": "Spitzenlaskessel"
,
"BestKessel": "BestKessel"
,
"BestKePumpenfreigabetemp": "Pumpenfreigabetemp"
,
"BestKeUmschalttemp": "Umschalttemperatur"
,
"BestKeTempMax": "Temperatur Max"
,
"BestKeSperrdauer": "Sperrdauer"
,
"BestKeInversion": "Umschaltventil Inversion"
,
"KaskadeBasis": "Kaskadenbasis"
,
"KaskadeEinschalttemp": "Einschalttemperatur"
,
"KaskadeAusschalttemp": "Ausschalttemperatur"
,
"KaskadeSperrzeit1": "Kessel 1 Sperrzeit"
,
"KaskadeSperrzeit2": "Kessel 2 Sperrzeit"
,
"KaskadeSperrzeit3": "Kessel 3 Sperrzeit"
,
"KaskadeSperrzeit4": "Kessel 4 Sperrzeit"
,
"KaskadeEinSoll1": "Kessel 1 Ein Temp"
,
"KaskadeAusSoll1": "Kessel 1 Aus Temp"
,
"KaskadeEinSoll2": "Kessel 2 Ein Temp"
,
"KaskadeAusSoll2": "Kessel 2 Aus Temp"
,
"KaskadeEinSoll3": "Kessel 3 Ein Temp"
,
"KaskadeAusSoll3": "Kessel 3 Aus Temp"
,
"KaskadeEinSoll4": "Kessel 4 Ein Temp"
,
"KaskadeAusSoll4": "Kessel 4 Aus Temp"
,
"KaskadeRestFolgewechsel": "Folgewechsel in"
,
"KaskadeAnforderung1": "Kessel 1 Anforderung"
,
"KaskadeAnforderung2": "Kessel 2 Anforderung"
,
"KaskadeAnforderung3": "Kessel 3 Anforderung"
,
"KaskadeAnforderung4": "Kessel 4 Anforderung"
,
"KesseltempBestKessel": "Bestehender Kessel"
,
"Umschaltventil": "Umschaltventil"
,
"ZirkPumpe": "ZirkPump $"
,
"ZirkP_Ruecklauf": "ZirkP$ Rücklauftemp"
,
"ZirkP_Freigabetemp": "ZirkP$ Freigabetemp"
,
"ZirkP_Pumpe": "ZirkP$ Pumpe"
,
"Pumpenfreigabe": "Pumpenfreigabetemp"
,
"Spuelintervall": "Spülintervall"
,
"SpuelzeitMin": "Spülzeit Min"
,
"ZubrP_Pumpe": "ZubrP$ Pumpe"
,
"ZubrPumpe": "ZubrPump $"
,
"ZubrpHK1": "Heizkreis 1"
,
"ZubrpHK2": "Heizkreis 2"
,
"ZubrpHK3": "Heizkreis 3"
,
"ZubrpHK4": "Heizkreis 4"
,
"ZubrpHK5": "Heizkreis 5"
,
"ZubrpHK6": "Heizkreis 6"
,
"ZubrpWW1": "Warmwasser 1"
,
"ZubrpWW2": "Warmwasser 2"
,
"ZubrpWW3": "Warmwasser 3"
,
"ZubrpPU1": "Puffer 1"
,
"ZubrpPU2": "Puffer 2"
,
"ZubrpPU3": "Puffer 3"
,
"ZubrpSK1": "Solar 1 Solarkreis 1"
,
"ZubrpSK2": "Solar 1 Solarkreis 2"
,
"ZubrpSK3": "Solar 2 Solarkreis 1"
,
"ZubrpSK4": "Solar 2 Solarkreis 2"
,
"ZubrpSK5": "Solar 3 Solarkreis 1"
,
"ZubrpSK6": "Solar 3 Solarkreis 2"
,
"Allgemeines": "Allgemein"
,
"Laendereinstellung": "Ländereinst"
,
"DatumUhrzeit": "Datum/Uhrzeit"
,
"Software": "Software"
,
"SoftwareBedienteil": "Bedienteil"
,
"SendeTestmail": "Sende Test E-Mail"
,
"Leistungsstufe": "Leistungsstufe"
,
"Neustarten": "Fehler Quittieren"
,
"Einschub_plus": "Einschub ++"
}
var MsgText = {
"1,1": "HK %n Vorlauf FB"
,
"2,1": "HK %n Vorlauf KS"
,
"3,1": "HK %n Vorlauf"
,
"1,2": "WW %n Ein Fühler FB"
,
"2,2": "WW %n Ein Fühler KS"
,
"3,2": "WW %n Ein Fühler"
,
"1,3": "Außenfühler FB"
,
"2,3": "Außenfühler KS"
,
"3,3": "Außenfühler"
,
"1,4": "Kesselfühler FB"
,
"2,4": "Kesselfühler KS"
,
"3,4": "Kesselfühler"
,
"4,5": "Heizkreisregler %n BUS"
,
"4,6": "Pellematic %n BUS"
,
"4,7": "Fernbedienung %n BUS"
,
"1,8": "TPO %n FB"
,
"2,8": "TPO %n KS"
,
"3,8": "TPO %n"
,
"1,9": "TPM %n FB"
,
"2,9": "TPM %n KS"
,
"3,9": "TPM %n"
,
"1,10": "Kollektor %n FB"
,
"2,10": "Kollektor %n KS"
,
"3,10": "Kollektor %n"
,
"1,11": "Speicher Unten %n FB"
,
"2,11": "Speicher Unten %n KS"
,
"3,11": "Speicher Unten %n"
,
"1,12": "Vorlauf Ertrag %n FB"
,
"2,12": "Vorlauf Ertrag %n KS"
,
"3,12": "Vorlauf Ertrag %n"
,
"1,13": "Ruecklauf Ertrag %n FB"
,
"2,13": "Ruecklauf Ertrag %n KS"
,
"3,13": "Ruecklauf Ertrag %n"
,
"1,14": "Best Kesselfühler %n FB"
,
"2,14": "Best Kesselfühler %n KS"
,
"3,14": "Best Kesselfühler %n"
,
"4,15": "Fernbed Touch %n BUS"
,
"4,16": "Master BUS"
,
"1,17": "Kaskade Ein Fühler FB"
,
"2,17": "Kaskade Ein Fühler KS"
,
"3,17": "Kaskade Ein Fühler"
,
"1,18": "Kaskade Aus Fühler FB"
,
"2,18": "Kaskade Aus Fühler KS"
,
"3,18": "Kaskade Aus Fühler"
,
"1,19": "Zirkulation RL %n FB"
,
"2,19": "Zirkulation RL %n KS"
,
"3,19": "Zirkulation RL %n"
,
"1,20": "WW %n Aus Fühler FB"
,
"2,20": "WW %n Aus Fühler KS"
,
"3,20": "WW %n Aus Fühler"
,
"1,21": "TEST"
,
"5,0": "PE %n Reservefühler1 FB"
,
"5,1": "PE %n Reservefühler1 KS"
,
"5,2": "PE %n Reservefühler2 FB"
,
"5,3": "PE %n Reservefühler2 KS"
,
"5,4": "PE %n Aussenfühler FB"
,
"5,5": "PE %n Aussenfühler KS"
,
"5,6": "PE %n Kesselfühler FB"
,
"5,7": "PE %n Kesselfühler KS"
,
"5,8": "PE %n Abgasfühler FB"
,
"5,9": "PE %n Abgasfühler KS"
,
"5,10": "PE %n Flammraumfühler FB"
,
"5,11": "PE %n Flammraumfühler KS"
,
"5,12": "PE %n Unterdruckdose FB"
,
"5,13": "PE %n Unterdruckdose KS"
,
"5,14": "PE %n Analogeingang1 FB"
,
"5,15": "PE %n Analogeingang1 KS"
,
"5,16": "PE %n Analogeingang2 FB"
,
"5,17": "PE %n Analogeingang2 KS"
,
"5,18": "PE %n Motor Turbine"
,
"5,19": "PE %n Glühstab"
,
"5,20": "PE %n Motor Aschebox"
,
"5,21": "PE %n Motor Res1"
,
"5,22": "PE %n Magnetventil"
,
"5,23": "PE %n Motor Reinigung"
,
"5,24": "PE %n Abgasgebläse"
,
"5,25": "PE %n Umwaelzpumpe"
,
"5,26": "PE %n Motor Raumentnahme1"
,
"5,27": "PE %n Motor Res2"
,
"5,28": "PE %n Motor Zwischen"
,
"5,29": "PE %n Motor Einschub"
,
"5,30": "PE %n Lueftergebläse"
,
"5,31": "PE %n Motor BSK"
,
"5,32": "PE %n Not-Aus"
,
"5,33": "PE %n Sichterheitsth"
,
"5,34": "PE %n Zuendung"
,
"5,35": "PE %n Zuendung"
,
"5,36": "PE %n FlammÜberwachung"
,
"5,37": "PE %n FlammÜberwachung"
,
"5,38": "PE %n BSK offen"
,
"5,39": "PE %n BSK geschlossen"
,
"5,40": "PE %n BSK Endschalter"
,
"5,41": "PE %n Unterdruck"
,
"5,42": "PE %n Unterdruck"
,
"5,43": "PE %n Saugsystem Befuellung"
,
"5,44": "PE %n Aschebox entleeren"
,
"5,45": "PE %n Kugelschleuse"
,
"5,46": "PE %n Falsche Anlage"
,
"5,47": "PE %n Motor Einschub / Asche voll"
,
"5,48": "PE %n Asche Warnung"
,
"5,49": "PE %n Pellets Warnung"
,
"6,10": "Kurzschluss Fühler Kühlmitteleintrittstemp."
,
"6,11": "Kabelbruch Fühler Kühlmitteleintrittstemp."
,
"6,12": "Kurzschluss Fühler Kühlmittelaustrittstemp."
,
"6,13": "Kabelbruch Fühler Kühlmittelaustrittstemp."
,
"6,14": "Kurzschluss Backend Temperatur Sensor"
,
"6,15": "Kabelbruch Fühler Kühlmittelaustrittstemp."
,
"6,16": "Kurzschluss Umgebungstemperatursensor"
,
"6,17": "Kabelbruch Umgebungstemperatursensor"
,
"6,301": "Überhitzung innerer Kern"
,
"6,303": "Dynamikabsorber Nachlaufweg"
,
"6,304": "G83/ENS Schutz"
,
"6,306": "Generator Überlast(wenn vorhanden)"
,
"6,309": "Generator Kurzschluss"
,
"6,310": "Kopf Überhitzung HW"
,
"6,311": "Kopf Untertemperatur HW"
,
"6,312": "Remote Not AUS"
,
"6,404": "Kopf Untertemperatur SW"
,
"6,405": "Kopf Überhitzung SW"
,
"6,406": "Unterschied Kopftemperatur - Messung"
,
"6,407": "Fehler Steuer - Thermoelement"
,
"6,408": "Fehler Limiter - Thermoelement"
,
"6,411": "Strom zu gering"
,
"6,414": "Fehler Widerstandsprüfung"
,
"6,415": "Fehler 24 Volt Versorgung"
,
"6,420": "Kurzschluss Steuer - Thermoelement"
,
"6,421": "Fühlerbruch Steuer - Thermoelement"
,
"6,424": "Kühlmittel Überhitzung"
,
"6,425": "Kühlmittel Untertemperatur"
,
"6,501": "Checksummenfehler Leistungsmessung"
,
"6,502": "Zeitüberschreitung Leistungsmessung"
,
"6,603": "Kühlmitteldurchfluss zu gering"
,
"6,604": "Umgebungstemperatur zu hoch"
}

*********************************************************
GET /login.cgi HTTP/1.1
Host: 192.168.68.250
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: language=de
Connection: keep-alive


HTTP/1.1 200 OK
Connection: keep-alive
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache

<!DOCTYPE html>
<html>
<head>
  <title>&Ouml;koFEN Pellematic</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
  <link rel="stylesheet" type="text/css" href="/css/style.css"/>
  <!--[if lte IE 8]>
  <link rel="stylesheet" type="text/css" href="/css/style.ie8.css"/>
  <![endif]-->
  <link rel="stylesheet" type="text/css" href="/css/oekofen/jquery-ui-1.8.14.custom.css"/>
  <script type="text/javascript" src="/js/lib/jquery-1.6.2.min.js"></script>
  <script type="text/javascript" src="/lang/language.cgi?nojquery=1"></script>
  <script type="text/javascript" src="/js/app/language.js"></script>
  <script type="text/javascript">
    var onlinePathRoot = '';
    $(document).ready(function() {
      language.localizeLoginPage();
      $("input:first").focus();
      $("#language").change(function() {
        $("#submit").click();
      });

      if (document.cookie.indexOf("LoginError=1") > -1) {
        $("#form-info").show();
      }
    });
  </script>
  <style type="text/css"></style>
</head>
<body>
<div id="wrapper">
  <div id="header"></div>
  <div id="content" style="background-color:#e9e9e9">
    <div id="form-info" style="padding: 0 0.7em 0 0.7em; margin: 0 auto 10px auto; width: 50%" class="ui-state-error ui-corner-all">
      <p><span style="float: left; margin-right: 0.3em;" class="ui-icon ui-icon-alert"></span></p>
    </div>
    <form action="/index.cgi" method="post" accept-charset="utf-8">
    <table style="margin: 0 auto; padding:10px">
      <tr>
        <td><label for="username"></label></td>
        <td><input type="text" id="username" name="username" value=""/></td>
      </tr>
      <tr>
        <td><label for="password"></label></td>
        <td><input type="password" id="password" name="password" value=""/></td>
      </tr>
      <tr>
        <td><label for="language"></label></td>
        <td><select size="1" id="language" name="language"></select></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><input type="submit" id="submit" name="submit"/></td>
      </tr>
    </table>
    </form>
  </div>
</div>
</body>
</html>

**********************************************************
GET / HTTP/1.1
Host: 192.168.68.250
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: language=de
Connection: keep-alive

HTTP/1.1 303 OK
Set-Cookie: LoginError=0; Expires=Thu, 01 Jan 1970 01:00:00 CET; Max-Age=0; Path=/; Version="1"
Status: 303 See Other
Location: login.cgi
Connection: keep-alive
Content-Type: text/plain; charset=utf-8

**********************************************************
GET /index.cgi HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close


************************************************************
GET /js/app/language.js HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close


*************************************************************

GET /js/lib/jquery-1.6.2.min.js HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close


********************************************

GET /lang/language.cgi HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close

JueFi

#10
Eingabe Benutzer, Passwort und "Anmelden" klicken

GET / HTTP/1.1
Host: 192.168.68.250
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.68.250/login.cgi
Cookie: language=de; pksession=16877
Connection: keep-alive



HTTP/1.1 200 OK
Set-Cookie: pksession=16877; Expires=Tue, 19 Jan 2038 04:13:43 CET; Max-Age=600; Path=/; Version="1"
Connection: keep-alive
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<html>
<head>
  <title>&Ouml;koFEN Pellematic</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <meta name="author" content="XorteX eBusiness GmbH"/>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
  <link rel="stylesheet" type="text/css" href="/css/style.css"/>
  <!--[if lte IE 8]>
  <link rel="stylesheet" type="text/css" href="/css/style.ie8.css"/>
  <![endif]-->
  <link rel="stylesheet" type="text/css" href="/css/oekofen/jquery-ui-1.8.14.custom.css"/>
  <link rel="stylesheet" type="text/css" href="/css/oekofen/jquery.pnotify.default.css"/>
  <script type="text/javascript" src="/js/lib/jquery-1.6.2.min.js"></script>
  <script type="text/javascript" src="/js/lib/jquery-ui-1.8.14.custom.min.js"></script>
  <script type="text/javascript" src="/js/lib/jquery.pnotify.min.js"></script>
  <script type="text/javascript" src="/js/lib/jquery.buttonsetv.min.js"></script>
  <script type="text/javascript" src="/js/lib/jquery-ui.timepicker.min.js"></script>
  <script type="text/javascript" src="/js/lib/jquery.format-1.1.min.js"></script>
  <script type="text/javascript" src="/lang/language.cgi"></script>
  <script type="text/javascript" src="/js/app.min.js"></script>
  <script type="text/javascript" src="/js/config.min.js"></script>
  <style type="text/css"></style>
</head>
<body>
<script type="text/javascript">
  var onlinePathRoot = '';
  main.showLoader();
</script>
<div id="wrapper">
  <div id="header"><a href="#" id="logout"></a></div>
  <div id="content">
    <div id="menu">
      <div class="left-area">
        <h1 id="menu-title"></h1>
        <h2 id="time" class="date-header"></h2>
        <div class="clear"></div>
        <h2 id="date" class="date-header"></h2>
        <div class="clear"></div>
        <div class="grid"></div>
        <div class="clear"></div>
      </div>
      <div class="right-area">
        <div id="menu-icons">
          <a href="#/" id="btn-home"><img src="images/r_home.gif" alt="Home" /></a>
          <a href="#/" id="btn-back"><img src="images/r_back.gif" alt="Back" /></a>
          <div class="clear"></div>
        </div>
      </div>
      <div class="clear"></div>
    </div>
    <div id="infobox">
      <div id="messages" style="display:none">
        <h1 id="messages-title"></h1>
        <div id="message-area"></div>
      </div>
      <h1 id="infobox-title"></h1>
      <div class="value" style="background:none">
        &nbsp;
        <div class="values">
          <span id="infobox-is" class="value-is" style="font-weight:bold"></span>
          <span id="infobox-set" style="font-weight:bold"></span>
        </div>
      </div>
      <div id="value-area"></div>
    </div>
    <div class="clear"></div>
  </div>
</div>
</body>
</html>

*******************************
POST /?action=get&attr=1 HTTP/1.1
Host: 192.168.68.250
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: de
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://192.168.68.250/
Content-Length: 2128
Cookie: language=de; pksession=16877
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"]






HTTP/1.1 200 OK
Set-Cookie: pksession=16877; Expires=Tue, 19 Jan 2038 04:13:43 CET; Max-Age=600; Path=/; Version="1"
Connection: close
Content-Type: application/json; charset=utf-8
Cache-Control: no-cache

[{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","value":"1416860530.649332","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"Vorhanden","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.hk[0].vorhanden","value":"1","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"Vorhanden","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.hk[1].vorhanden","value":"1","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"Vorhanden","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.hk[2].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"Vorhanden","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.hk[3].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"Vorhanden","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.hk[4].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"Vorhanden","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.hk[5].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"Vorhanden","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.ww[0].vorhanden","value":"1","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"Vorhanden","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.ww[1].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"Vorhanden","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.ww[2].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.zirkp[0].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.zirkp[1].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.zirkp[2].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"Solar vorhanden","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.sk[0].vorhanden","value":"1","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"Solar vorhanden","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.sk[2].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"Solar vorhanden","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.sk[4].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.pu[0].vorhanden","value":"1","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.pu[1].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.pu[2].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.heizkreisregler_vorhanden[0]","value":"1","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.pellematic_vorhanden[0]","value":"1","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.pellematic_vorhanden[1]","value":"0","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.pellematic_vorhanden[2]","value":"0","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.pellematic_vorhanden[3]","value":"0","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.zubrp[0].vorhanden","value":"1","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.zubrp[1].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.zubrp[2].vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.fernwartung_einheit","value":"0","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"Aussentemp Ist","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_aussentemperatur_ist","value":"56","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":" Dauerlauf|Start|Zuendung|Softstart|Leistungsbrand|Nachlauf|Aus|Saugen|! Asche !|! Pellets !|Pell Switch|Störung|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|Aus|Aus|Aus|Aus|Aus","shortText":"Kesselstatus","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:FA[0].L_kesselstatus","value":"4","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":" Dauerlauf|Start|Zuendung|Softstart|Leistungsbrand|Nachlauf|Aus|Saugen|! Asche !|! Pellets !|Pell Switch|Störung|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|Aus|Aus|Aus|Aus|Aus","shortText":"Kesselstatus","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:FA[1].L_kesselstatus","value":"0","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":" Dauerlauf|Start|Zuendung|Softstart|Leistungsbrand|Nachlauf|Aus|Saugen|! Asche !|! Pellets !|Pell Switch|Störung|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|Aus|Aus|Aus|Aus|Aus","shortText":"Kesselstatus","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:FA[2].L_kesselstatus","value":"0","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":" Dauerlauf|Start|Zuendung|Softstart|Leistungsbrand|Nachlauf|Aus|Saugen|! Asche !|! Pellets !|Pell Switch|Störung|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|Aus|Aus|Aus|Aus|Aus","shortText":"Kesselstatus","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:FA[3].L_kesselstatus","value":"0","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"Kesseltemperatur","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:FA[0].L_kesseltemperatur","value":"578","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"Kesselsolltemperatur","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","value":"700","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"Kesseltemperatur","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:FA[1].L_kesseltemperatur","value":"0","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"Kesselsolltemperatur","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","value":"0","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"Kesseltemperatur","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:FA[2].L_kesseltemperatur","value":"0","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"Kesselsolltemperatur","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","value":"0","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"Kesseltemperatur","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:FA[3].L_kesseltemperatur","value":"0","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"Kesselsolltemperatur","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","value":"0","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.bestke_vorhanden","value":"0","divisor":"","status":"OK","unitTextImperial":""},{"formatTexts":"","shortText":"???","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_bestke_temp_ist","value":"0","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":" Aus|Ein","shortText":"???","unitText":"???","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.L_bestke_umschaltventil","value":"0","divisor":"","status":"OK","unitTextImperial":"???"},{"formatTexts":"","shortText":"TPM ist","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","value":"586","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"TPM soll","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","value":"509","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"TPM ist","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","value":"0","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"TPM soll","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","value":"80","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"TPM ist","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","value":"0","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"TPM soll","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","value":"80","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"TPO ist","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","value":"358","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"TPO soll","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","value":"509","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"TPO ist","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","value":"0","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"TPO soll","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","value":"80","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"TPO ist","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","value":"0","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"TPO soll","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","value":"80","divisor":"10","status":"OK","unitTextImperial":"°F"},{"formatTexts":"","shortText":"Pumpe","unitText":"%","lowerLimit":"0","upperLimit":"100","name":"CAPPL:LOCAL.L_pu[0].pumpe","value":"0","divisor":"???","status":"OK","unitTextImperial":"%"},{"formatTexts":"","shortText":"Pumpe","unitText":"%","lowerLimit":"0","upperLimit":"100","name":"CAPPL:LOCAL.L_pu[1].pumpe","value":"0","divisor":"???","status":"OK","unitTextImperial":"%"},{"formatTexts":"","shortText":"Pumpe","unitText":"%","lowerLimit":"0","upperLimit":"100","name":"CAPPL:LOCAL.L_pu[2].pumpe","value":"0","divisor":"???","status":"OK","unitTextImperial":"%"},{"formatTexts":"","shortText":"","unitText":"","lowerLimit":"","upperLimit":"","name":"CAPPL:LOCAL.L_zaehler_fehler","value":"0","divisor":"","status":"OK","unitTextImperial":""}]


****************************************************

GET /lang/language.cgi HTTP/1.1
Host: 192.168.68.250
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.68.250/
Cookie: language=de; pksession=16877
Connection: keep-alive

HTTP/1.1 200 OK
Connection: keep-alive
Content-Type: text/javascript; charset=utf-8

var Lang = {
__current: "de",
__available: {
"de": "Deutsch"
,
"en": "English"
,
.
.   <   hier ist was weggelassen >
.
,
"SendeTestmail": "Sende Test E-Mail"
,
"Leistungsstufe": "Leistungsstufe"
,
"Neustarten": "Fehler Quittieren"
,
"Einschub_plus": "Einschub ++"
}
jQuery(function($){
$.datepicker.regional['de'] = {
closeText: 'schließen',
prevText: ' nextText: 'Vor>',
currentText: 'heute',
monthNames: ['Januar','Februar','März','April','Mai','Juni',
'Juli','August','September','Oktober','November','Dezember'],
monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
'Jul','Aug','Sep','Okt','Nov','Dez'],
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
weekHeader: 'Wo',
dateFormat: 'dd.mm.yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''};
$.datepicker.setDefaults($.datepicker.regional['de']);
});
jQuery(function($){
$.timepicker.regional[Lang.__current] = {
timeOnlyTitle: Lang.ZeitWaehlen,
timeText: Lang.Zeitangabe,
hourText: Lang.Stunde,
minuteText: Lang.Minute,
secondText: Lang.Sekunde,
currentText: Lang.Jetzt,
closeText: Lang.Fertig,
ampm: Lang.StundenFormat == 12
};
$.timepicker.setDefaults($.timepicker.regional[Lang.__current]);
});
var MsgText = {
"1,1": "HK %n Vorlauf FB"
,
"2,1": "HK %n Vorlauf KS"
,
"3,1": "HK %n Vorlauf"
,
"1,2": "WW %n Ein Fühler FB"
,
"2,2": "WW %n Ein Fühler KS"
,
"3,2": "WW %n Ein Fühler"
,
"1,3": "Außenfühler FB"
,
"2,3": "Außenfühler KS"
,
"3,3": "Außenfühler"
,
"1,4": "Kesselfühler FB"
,
"2,4": "Kesselfühler KS"
,
"3,4": "Kesselfühler"
,
"4,5": "Heizkreisregler %n BUS"
,
"4,6": "Pellematic %n BUS"
,
"4,7": "Fernbedienung %n BUS"
,
"1,8": "TPO %n FB"
,
"2,8": "TPO %n KS"
,
"3,8": "TPO %n"
,
"1,9": "TPM %n FB"
,
"2,9": "TPM %n KS"
,
"3,9": "TPM %n"
,
"1,10": "Kollektor %n FB"
,
"2,10": "Kollektor %n KS"
,
"3,10": "Kollektor %n"
,
"1,11": "Speicher Unten %n FB"
,
"2,11": "Speicher Unten %n KS"
,
"3,11": "Speicher Unten %n"
,
"1,12": "Vorlauf Ertrag %n FB"
,
"2,12": "Vorlauf Ertrag %n KS"
,
"3,12": "Vorlauf Ertrag %n"
,
"1,13": "Ruecklauf Ertrag %n FB"
,
"2,13": "Ruecklauf Ertrag %n KS"
,
"3,13": "Ruecklauf Ertrag %n"
,
"1,14": "Best Kesselfühler %n FB"
,
"2,14": "Best Kesselfühler %n KS"
,
"3,14": "Best Kesselfühler %n"
,
"4,15": "Fernbed Touch %n BUS"
,
"4,16": "Master BUS"
,
"1,17": "Kaskade Ein Fühler FB"
,
"2,17": "Kaskade Ein Fühler KS"
,
"3,17": "Kaskade Ein Fühler"
,
"1,18": "Kaskade Aus Fühler FB"
,
"2,18": "Kaskade Aus Fühler KS"
,
"3,18": "Kaskade Aus Fühler"
,
"1,19": "Zirkulation RL %n FB"
,
"2,19": "Zirkulation RL %n KS"
,
"3,19": "Zirkulation RL %n"
,
"1,20": "WW %n Aus Fühler FB"
,
"2,20": "WW %n Aus Fühler KS"
,
"3,20": "WW %n Aus Fühler"
,
"1,21": "TEST"
,
"5,0": "PE %n Reservefühler1 FB"
,
"5,1": "PE %n Reservefühler1 KS"
,
"5,2": "PE %n Reservefühler2 FB"
,
"5,3": "PE %n Reservefühler2 KS"
,
"5,4": "PE %n Aussenfühler FB"
,
"5,5": "PE %n Aussenfühler KS"
,
"5,6": "PE %n Kesselfühler FB"
,
"5,7": "PE %n Kesselfühler KS"
,
"5,8": "PE %n Abgasfühler FB"
,
"5,9": "PE %n Abgasfühler KS"
,
"5,10": "PE %n Flammraumfühler FB"
,
"5,11": "PE %n Flammraumfühler KS"
,
"5,12": "PE %n Unterdruckdose FB"
,
"5,13": "PE %n Unterdruckdose KS"
,
"5,14": "PE %n Analogeingang1 FB"
,
"5,15": "PE %n Analogeingang1 KS"
,
"5,16": "PE %n Analogeingang2 FB"
,
"5,17": "PE %n Analogeingang2 KS"
,
"5,18": "PE %n Motor Turbine"
,
"5,19": "PE %n Glühstab"
,
"5,20": "PE %n Motor Aschebox"
,
"5,21": "PE %n Motor Res1"
,
"5,22": "PE %n Magnetventil"
,
"5,23": "PE %n Motor Reinigung"
,
"5,24": "PE %n Abgasgebläse"
,
"5,25": "PE %n Umwaelzpumpe"
,
"5,26": "PE %n Motor Raumentnahme1"
,
"5,27": "PE %n Motor Res2"
,
"5,28": "PE %n Motor Zwischen"
,
"5,29": "PE %n Motor Einschub"
,
"5,30": "PE %n Lueftergebläse"
,
"5,31": "PE %n Motor BSK"
,
"5,32": "PE %n Not-Aus"
,
"5,33": "PE %n Sichterheitsth"
,
"5,34": "PE %n Zuendung"
,
"5,35": "PE %n Zuendung"
,
"5,36": "PE %n FlammÜberwachung"
,
"5,37": "PE %n FlammÜberwachung"
,
"5,38": "PE %n BSK offen"
,
"5,39": "PE %n BSK geschlossen"
,
"5,40": "PE %n BSK Endschalter"
,
"5,41": "PE %n Unterdruck"
,
"5,42": "PE %n Unterdruck"
,
"5,43": "PE %n Saugsystem Befuellung"
,
"5,44": "PE %n Aschebox entleeren"
,
"5,45": "PE %n Kugelschleuse"
,
"5,46": "PE %n Falsche Anlage"
,
"5,47": "PE %n Motor Einschub / Asche voll"
,
"5,48": "PE %n Asche Warnung"
,
"5,49": "PE %n Pellets Warnung"
,
"6,10": "Kurzschluss Fühler Kühlmitteleintrittstemp."
,
"6,11": "Kabelbruch Fühler Kühlmitteleintrittstemp."
,
"6,12": "Kurzschluss Fühler Kühlmittelaustrittstemp."
,
"6,13": "Kabelbruch Fühler Kühlmittelaustrittstemp."
,
"6,14": "Kurzschluss Backend Temperatur Sensor"
,
"6,15": "Kabelbruch Fühler Kühlmittelaustrittstemp."
,
"6,16": "Kurzschluss Umgebungstemperatursensor"
,
"6,17": "Kabelbruch Umgebungstemperatursensor"
,
"6,301": "Überhitzung innerer Kern"
,
"6,303": "Dynamikabsorber Nachlaufweg"
,
"6,304": "G83/ENS Schutz"
,
"6,306": "Generator Überlast(wenn vorhanden)"
,
"6,309": "Generator Kurzschluss"
,
"6,310": "Kopf Überhitzung HW"
,
"6,311": "Kopf Untertemperatur HW"
,
"6,312": "Remote Not AUS"
,
"6,404": "Kopf Untertemperatur SW"
,
"6,405": "Kopf Überhitzung SW"
,
"6,406": "Unterschied Kopftemperatur - Messung"
,
"6,407": "Fehler Steuer - Thermoelement"
,
"6,408": "Fehler Limiter - Thermoelement"
,
"6,411": "Strom zu gering"
,
"6,414": "Fehler Widerstandsprüfung"
,
"6,415": "Fehler 24 Volt Versorgung"
,
"6,420": "Kurzschluss Steuer - Thermoelement"
,
"6,421": "Fühlerbruch Steuer - Thermoelement"
,
"6,424": "Kühlmittel Überhitzung"
,
"6,425": "Kühlmittel Untertemperatur"
,
"6,501": "Checksummenfehler Leistungsmessung"
,
"6,502": "Zeitüberschreitung Leistungsmessung"
,
"6,603": "Kühlmitteldurchfluss zu gering"
,
"6,604": "Umgebungstemperatur zu hoch"
}


**************************************************************

POST /index.cgi HTTP/1.1
Host: 192.168.68.250
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.68.250/login.cgi
Cookie: language=de
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 59

username=Oeko&password=Geheim&language=de&submit=Anmelden



HTTP/1.1 303 OK
Set-Cookie: language=de; Expires=Tue, 19 Jan 2038 04:13:43 CET; Max-Age=2592000; Path=/; Version="1"
Set-Cookie: LoginError=0; Expires=Thu, 01 Jan 1970 01:00:00 CET; Max-Age=0; Path=/; Version="1"
Set-Cookie: pksession=16877; Expires=Tue, 19 Jan 2038 04:13:43 CET; Max-Age=600; Path=/; Version="1"
Status: 303 See Other
Location: /
Connection: keep-alive
Content-Type: text/plain; charset=utf-8



********************************************************************************


GET /index.cgi HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close


GET /js/app.min.js HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close


GET /js/config.min.js HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close



GET /js/lib/jquery-1.6.2.min.js HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close


GET /js/lib/jquery-ui-1.8.14.custom.min.js HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close


GET /js/lib/jquery-ui.timepicker.min.js HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close



GET /js/lib/jquery.buttonsetv.min.js HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close


GET /js/lib/jquery.format-1.1.min.js HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close



GET /js/lib/jquery.pnotify.min.js HTTP/1.1
Host: 192.168.68.250
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close

JueFi

Betriebsart auf "Aus" setzen

POST /?action=set HTTP/1.1
Host: 192.168.68.250
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: de
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://192.168.68.250/
Content-Length: 34
Cookie: language=de; pksession=16877
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

{"CAPPL:FA[0].betriebsart_fa":"0"}



HTTP/1.1 200 OK
Set-Cookie: pksession=16877; Expires=Tue, 19 Jan 2038 04:13:43 CET; Max-Age=600; Path=/; Version="1"
Connection: close
Content-Type: application/json; charset=utf-8
Cache-Control: no-cache

[{"status":"OK","name":"CAPPL:FA[0].betriebsart_fa","value":"0"}]

StefanStrobel

#12
Hallo Jürgen,

mit dem neuen HTTPMOD sollte das klappen.

Ich fang mal am Ende an. Um eine Set-Option zu definieren, packen wir die nötigen Daten aus dem entsprechenden HTTP-Request (aus Deinem Post zu "Betriebsart Aus") in Attribute. Für die erste Set-Option wären das die Attribute, die mit Set1 beginnen:


attr PHeiz set1Name Betriebsart
attr PHeiz set1Data {"CAPPL:FA[0].betriebsart_fa":"$val"}
attr PHeiz set1Map 0:Aus,1:An


$val wird später von HTTPMOD durch die umgewandelte Eingabe erstetzt. Die Map macht aus "Aus" eine 0 und aus "Ein" eine 1.
Für die Dinge, die vermutlich bei allen Set Optionen gleich sind (z.B. allgemeine Header), lassen wir die Zahl im Attributsnamen weg. Statt Set1Header1 nehmen wir daher SetHeader1 etc.:


attr PHeiz setURL http://192.168.68.250/?action=set
attr PHeiz setHeader1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr PHeiz setHeader2 application/json, text/javascript, */*;; q=0.01
attr PHeiz setHeader3 Accept-Language: de
attr PHeiz setHeader4 Cookie: language=de;; pksession=$sid


beim zweiten Header reicht vermutlich auch

attr PHeiz setHeader2 application/json


$sid wird durch die Session-Id ersetzt. Die bekommen wir jedoch erst mit dem Login.
Ich hab dazu auch mal das Phyton-Script angesehen und die Sache scheint eigentlich ganz einfach zu sein. Wenn ich das richtig verstanden habe, sollte ein einziger Request für's login ausreichen.

Wir definieren dafür wie oben die URL, die Header und den Daten-Teil:


attr PHeiz sidURL http://192.168.68.250/index.cgi
attr PHeiz sid1Header1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr PHeiz sid1Header2 application/json, text/javascript, */*;; q=0.01
attr PHeiz sid1Header3 Accept-Language: de
attr PHeiz sid1Header4 Cookie: language=de
attr PHeiz sid1Data username=Oeko&password=Geheim&language=de&submit=Anmelden


möglicherweise sind die Header für's login aber auch gar nicht nötig. In dem Phyton-Script scheinen die nicht verwendet zu werden.

Jetzt fehlt noch eine Regex, die in der Response die Session-Id extrahiert:


attr PHeiz sid1IDRegex pksession=([0-9]+);;


Nun muss HTTPMOD noch erkennen, ob für den Set ein neuer Login überhaupt nötig ist oder ob die Session-Id aus einem vorhergehenden Request evt. noch gültig ist.
Dafür definiert man noch mal eine Regex, die auf die Fehlerseite matcht wenn man nicht eingeloggt ist. Vermutlich reicht es zum Testen wenn wir erst mal eine Regex nehmen, die immer passt:


attr PHeiz setReAuthRegex .*


Wenn auch zum zyklischen Lesen von Daten ein Login nötig ist, dann auch

attr PHeiz reAuthRegex .*


Jetzt fehlt noch der Anfang, die Definition des Devices und die zyklische Abfrage von Daten (so wie das HTTPMOD bisher schon gemacht hat). Dabei wird die obige Login-Prozedur dann auch verwendet, wenn die reAuthRegex matcht.


define PHeiz HTTPMOD http://192.168.68.250/?action=get&attr=1 60


Dann wir die angegebene URL alle 60sec abgefragt.
Auch hier wieder die Definition der nötigen Header und Daten für den Request


attr PHeiz requestHeader1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr PHeiz requestHeader2 application/json, text/javascript, */*;; q=0.01
attr PHeiz requestHeader3 Accept-Language: de
attr PHeiz requestHeader4 Cookie: language=de;; pksession=$sid
attr PHeiz requestData ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"]


Dabei fällt mir auf, dass man in Deinem Anwendungsfall ziemlich oft die gleichen Header definieren muss. Da werd ich mir noch mal was zur Optimierung des Moduls überlegen.
Vielleicht sind die Header aber auch gar nicht nötig. Das musst kannst Du ja noch testen, wenn es erst mal funktioniert.

Den Data Text hab ich einfach aus Deinem Post herauskopiert. Vermutlich kannst Du die Werte rauslöschen, die Du nicht benötigst.

Dann musst Du noch für jedes Reading, das Du daraus extrahieren möchtest die alten Attribute definieren:


attr PHeiz reading01Name Aussentemp
attr PHeiz reading01Regex CAPPL:LOCAL.L_aussentemperatur_ist","value":"([0-9]+)"


wenn der Divisor hier immer 10 ist, muss man den nicht lesen und kann den extrahierten Wert generell durch 10 dividieren:


attr PHeiz reading01Expr $val / 10


So ungefähr müsste es funktionieren. Ich kann es selbst leider nicht testen und Du musst daher davon ausgehen, dass es noch nicht auf Anhieb klappt. Das neue HTTPMOD ist auch noch Beta und könnte auch noch Probleme machen, aber daran sollte es nicht scheitern.

Zum Testen solltest Du das Loglevel des Geräts auf 5 setzen, dann kommen jede Menge Meldungen im Fhem Logfile:


attr PHeiz verbose 5


Bin gespannt, wie weit wir im ersten Schritt kommen :-)

Gruss
   Stefan

EDIT: Tippfehler beseitigt

JueFi

Hallo Stefan,
genau so hätte ich es auch probiert  ;)

Wahrscheinlich habe ich zu wenig Ahnung von dem Ganzen
Hier meine fhem.cfg (Auszug)
# -------------------  Heizung
define PHeiz HTTPMOD ?action=get&attr=1 60
attr PHeiz set1Name Betriebsart
attr PHeiz set1Data {"CAPPL:FA[0].betriebsart_fa":"$val"}
attr PHeiz set1Map 0:Aus,1:An

attr PHeiz setURL http://192.168.68.250/?action=set
attr PHeiz setHeader1 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
attr PHeiz setHeader2 application/json, text/javascript, */*; q=0.01
attr PHeiz setHeader3 Accept-Language: de
attr PHeiz setHeader4 Cookie: language=de; pksession=$sid

attr PHeiz sidURL http://192.168.68.250/index.cgi
attr PHeiz sid1Header1 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
attr PHeiz sid1Header2 application/json, text/javascript, */*; q=0.01
attr PHeiz sid1Header3 Accept-Language: de
attr PHeiz sid1Header4 Cookie: language=de
attr PHeiz sid1Data username=Oeko&password=Geheim&language=de&submit=Anmelden

attr PHeiz sid1IDRegex pksession=([0-9]+);

attr PHeiz setReAuthRegex .*

attr PHeiz reAuthRegex .*

attr PHeiz requestHeader1 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
attr PHeiz requestHeader2 application/json, text/javascript, */*; q=0.01
attr PHeiz requestHeader3 Accept-Language: de
attr PHeiz requestHeader4 Cookie: language=de; pksession=$sid
attr PHeiz requestData ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"]

attr PHeiz reading01Name Aussentemp
attr PHeiz reading01Regex CAPPL:LOCAL.L_aussentemperatur_ist","value":"([0-9]+)"

attr PHeiz reading01Expr $val / 10

attr PHeiz verbose 5


und die Fehler beim Speichern
Unknown command charset=UTF-8, try help. Unknown command q=0.01, try help. Unknown command pksession=$sid, try help. Unknown command charset=UTF-8, try help. Unknown command q=0.01, try help. Unknown command charset=UTF-8, try help. Unknown command q=0.01, try help. Unknown command pksession=$sid, try help.

StefanStrobel

Hallo Jürgen,

Sorry, da hab ich zu schnell reinkopiert. Verdopple doch mal die Semikolons. Sonst kann es nicht klappen ...

Gruß
   Stefan

JueFi

Hallo Stefan,
danke für deine Mühe.
Hier auch 2 Semikolon ?
attr PHeiz sid1IDRegex pksession=([0-9]+);;

Keine Fehlermeldung beim Speichern der Config.

Das Log
2014.11.28 07:57:06 1: Including fhem.cfg
2014.11.28 07:57:06 3: telnetPort: port 7072 opened
2014.11.28 07:57:06 3: WEB: port 8083 opened
2014.11.28 07:57:06 3: WEBphone: port 8084 opened
2014.11.28 07:57:06 3: WEBtablet: port 8085 opened
2014.11.28 07:57:06 2: eventTypes: loaded 710 events from ./log/eventTypes.txt
2014.11.28 07:57:06 1: Including ./log/fhem.save
2014.11.28 07:57:08 4: PHeiz: GetUpdate called, hash = HASH(0x2d10170), name = PHeiz
2014.11.28 07:57:08 5: PHeiz: AddToQueue initial send queue length : 0
2014.11.28 07:57:08 5: PHeiz: AddToQueue type Update to URL ?action=get&attr=1, data ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid
2014.11.28 07:57:08 5: PHeiz: handle send queue, len = 1
2014.11.28 07:57:08 4: PHeiz: HandleSendQueue sends Request type Update to URL ?action=get&attr=1, data ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid, timeout 2
2014.11.28 07:57:08 3: PHeiz: Read Callback: Request type was Update, buffer:
, Error ?action=get&attr=1: malformed or unsupported URL
2014.11.28 07:57:12 5: PHeiz: set called with ?
2014.11.28 07:57:18 5: PHeiz: set called with ?
2014.11.28 07:58:08 4: PHeiz: GetUpdate called, hash = HASH(0x2d10170), name = PHeiz
2014.11.28 07:58:08 5: PHeiz: AddToQueue initial send queue length : 0
2014.11.28 07:58:08 5: PHeiz: AddToQueue type Update to URL ?action=get&attr=1, data ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid
2014.11.28 07:58:08 5: PHeiz: handle send queue, len = 1
2014.11.28 07:58:08 4: PHeiz: HandleSendQueue sends Request type Update to URL ?action=get&attr=1, data ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid, timeout 2
2014.11.28 07:58:08 3: PHeiz: Read Callback: Request type was Update, buffer:
, Error ?action=get&attr=1: malformed or unsupported URL
2014.11.28 07:59:08 4: PHeiz: GetUpdate called, hash = HASH(0x2d10170), name = PHeiz
2014.11.28 07:59:08 5: PHeiz: AddToQueue initial send queue length : 0
2014.11.28 07:59:08 5: PHeiz: AddToQueue type Update to URL ?action=get&attr=1, data ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid
2014.11.28 07:59:08 5: PHeiz: handle send queue, len = 1
2014.11.28 07:59:08 4: PHeiz: HandleSendQueue sends Request type Update to URL ?action=get&attr=1, data ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid, timeout 2
2014.11.28 07:59:08 3: PHeiz: Read Callback: Request type was Update, buffer:
, Error ?action=get&attr=1: malformed or unsupported URL
2014.11.28 08:00:08 4: PHeiz: GetUpdate called, hash = HASH(0x2d10170), name = PHeiz
2014.11.28 08:00:08 5: PHeiz: AddToQueue initial send queue length : 0
2014.11.28 08:00:08 5: PHeiz: AddToQueue type Update to URL ?action=get&attr=1, data ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid
2014.11.28 08:00:08 5: PHeiz: handle send queue, len = 1
2014.11.28 08:00:08 4: PHeiz: HandleSendQueue sends Request type Update to URL ?action=get&attr=1, data ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid, timeout 2
2014.11.28 08:00:08 3: PHeiz: Read Callback: Request type was Update, buffer:
, Error ?action=get&attr=1: malformed or unsupported URL
2014.11.28 08:00:52 1: Including fhem.cfg
2014.11.28 08:00:52 3: telnetPort: port 7072 opened
2014.11.28 08:00:52 3: WEB: port 8083 opened
2014.11.28 08:00:52 3: WEBphone: port 8084 opened
2014.11.28 08:00:52 3: WEBtablet: port 8085 opened
2014.11.28 08:00:52 2: eventTypes: loaded 710 events from ./log/eventTypes.txt
2014.11.28 08:00:53 1: Including ./log/fhem.save
2014.11.28 08:00:55 4: PHeiz: GetUpdate called, hash = HASH(0x320ef08), name = PHeiz
2014.11.28 08:00:55 5: PHeiz: AddToQueue initial send queue length : 0
2014.11.28 08:00:55 5: PHeiz: AddToQueue type Update to URL ?action=get&attr=1, data ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid
2014.11.28 08:00:55 5: PHeiz: handle send queue, len = 1
2014.11.28 08:00:55 4: PHeiz: HandleSendQueue sends Request type Update to URL ?action=get&attr=1, data ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid, timeout 2
2014.11.28 08:00:55 3: PHeiz: Read Callback: Request type was Update, buffer:
, Error ?action=get&attr=1: malformed or unsupported URL
2014.11.28 08:01:55 4: PHeiz: GetUpdate called, hash = HASH(0x320ef08), name = PHeiz
2014.11.28 08:01:55 5: PHeiz: AddToQueue initial send queue length : 0
2014.11.28 08:01:55 5: PHeiz: AddToQueue type Update to URL ?action=get&attr=1, data ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid
2014.11.28 08:01:55 5: PHeiz: handle send queue, len = 1
2014.11.28 08:01:55 4: PHeiz: HandleSendQueue sends Request type Update to URL ?action=get&attr=1, data ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid, timeout 2
2014.11.28 08:01:55 3: PHeiz: Read Callback: Request type was Update, buffer:
, Error ?action=get&attr=1: malformed or unsupported URL


Der Code
# -------------------  Heizung
define PHeiz HTTPMOD ?action=get&attr=1 60
attr PHeiz set1Name Betriebsart
attr PHeiz set1Data {"CAPPL:FA[0].betriebsart_fa":"$val"}
attr PHeiz set1Map 0:Aus,1:An

attr PHeiz setURL http://192.168.68.250/?action=set
attr PHeiz setHeader1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr PHeiz setHeader2 application/json, text/javascript, */*;; q=0.01
attr PHeiz setHeader3 Accept-Language: de
attr PHeiz setHeader4 Cookie: language=de;; pksession=$sid

attr PHeiz sidURL http://192.168.68.250/index.cgi
attr PHeiz sid1Header1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr PHeiz sid1Header2 application/json, text/javascript, */*;; q=0.01
attr PHeiz sid1Header3 Accept-Language: de
attr PHeiz sid1Header4 Cookie: language=de
attr PHeiz sid1Data username=Oeko&password=Schalter&language=de&submit=Anmelden

attr PHeiz sid1IDRegex pksession=([0-9]+);;

attr PHeiz setReAuthRegex .*

attr PHeiz reAuthRegex .*

attr PHeiz requestHeader1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr PHeiz requestHeader2 application/json, text/javascript, */*;; q=0.01
attr PHeiz requestHeader3 Accept-Language: de
attr PHeiz requestHeader4 Cookie: language=de;; pksession=$sid
attr PHeiz requestData ["CAPPL:LOCAL.L_fernwartung_datum_zeit_sek","CAPPL:LOCAL.hk[0].vorhanden","CAPPL:LOCAL.hk[1].vorhanden","CAPPL:LOCAL.hk[2].vorhanden","CAPPL:LOCAL.hk[3].vorhanden","CAPPL:LOCAL.hk[4].vorhanden","CAPPL:LOCAL.hk[5].vorhanden","CAPPL:LOCAL.ww[0].vorhanden","CAPPL:LOCAL.ww[1].vorhanden","CAPPL:LOCAL.ww[2].vorhanden","CAPPL:LOCAL.zirkp[0].vorhanden","CAPPL:LOCAL.zirkp[1].vorhanden","CAPPL:LOCAL.zirkp[2].vorhanden","CAPPL:LOCAL.sk[0].vorhanden","CAPPL:LOCAL.sk[2].vorhanden","CAPPL:LOCAL.sk[4].vorhanden","CAPPL:LOCAL.pu[0].vorhanden","CAPPL:LOCAL.pu[1].vorhanden","CAPPL:LOCAL.pu[2].vorhanden","CAPPL:LOCAL.heizkreisregler_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[0]","CAPPL:LOCAL.pellematic_vorhanden[1]","CAPPL:LOCAL.pellematic_vorhanden[2]","CAPPL:LOCAL.pellematic_vorhanden[3]","CAPPL:LOCAL.zubrp[0].vorhanden","CAPPL:LOCAL.zubrp[1].vorhanden","CAPPL:LOCAL.zubrp[2].vorhanden","CAPPL:LOCAL.fernwartung_einheit","CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[1].L_kesselstatus","CAPPL:FA[2].L_kesselstatus","CAPPL:FA[3].L_kesselstatus","CAPPL:FA[0].L_kesseltemperatur","CAPPL:FA[0].L_kesseltemperatur_soll_anzeige","CAPPL:FA[1].L_kesseltemperatur","CAPPL:FA[1].L_kesseltemperatur_soll_anzeige","CAPPL:FA[2].L_kesseltemperatur","CAPPL:FA[2].L_kesseltemperatur_soll_anzeige","CAPPL:FA[3].L_kesseltemperatur","CAPPL:FA[3].L_kesseltemperatur_soll_anzeige","CAPPL:LOCAL.bestke_vorhanden","CAPPL:LOCAL.L_bestke_temp_ist","CAPPL:LOCAL.L_bestke_umschaltventil","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].einschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[1].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_ist","CAPPL:LOCAL.L_pu[2].ausschaltfuehler_soll","CAPPL:LOCAL.L_pu[0].pumpe","CAPPL:LOCAL.L_pu[1].pumpe","CAPPL:LOCAL.L_pu[2].pumpe","CAPPL:LOCAL.L_zaehler_fehler"]

attr PHeiz reading01Name Aussentemp
attr PHeiz reading01Regex CAPPL:LOCAL.L_aussentemperatur_ist","value":"([0-9]+)"

attr PHeiz reading01Expr $val / 10

attr PHeiz verbose 5

StefanStrobel

Hallo Jürgen,

Im define war de URL noch unvollständig. Das war ein Fehler in meinem langen Posting. Da fehlte das http://192.168.68.250/ vor dem ?. Sonst ist es ja auch keine gültige URL. Der Request wurde deshalb auch nicht gesendet.
Ich habs auch in meinem Posting korrigiert um weitere Missverständnisse zu vermeiden.

Das mit den doppelten Semikolons liegt daran, dass Fhem beim Lesen der Konfiguration ein Semikolon als Trennzeichen zwischen Befehlen verwendet. Wenn also ein Semikolon im Attribut vorkommen soll, dann muss man es verdoppeln und Fhem macht dann daraus ein einfaches...
Das kannst Du recht schön im Quellcode von Fhem sehen (fhem.pl in der Routine AnalyzeCommandChain, ca. Zeile 850)

Du könntest aber auch so schon mal versuchen, den Betriebsmodus zu setzen. Das hat nichts mit der URL im define zu tun. Für den Set haben wir ja eine eigene URL angegeben...

Gruss
   Stefan

JueFi

Hallo Stefan,

das mit der URL hatte ich auch schon vermutet und geändert.
Ein Stück weiter geht es jetzt, aber der Login klappt noch nicht.
Ich habe die requestData  mal verkürzt.

Code
# -------------------  Heizung
define PHeiz HTTPMOD http://192.168.68.250/?action=get&attr=1 60
attr PHeiz set1Name Betriebsart
attr PHeiz set1Data {"CAPPL:FA[0].betriebsart_fa":"$val"}
attr PHeiz set1Map 0:Aus,1:An

attr PHeiz setURL http://192.168.68.250/?action=set
attr PHeiz setHeader1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr PHeiz setHeader2 application/json, text/javascript, */*;; q=0.01
attr PHeiz setHeader3 Accept-Language: de
attr PHeiz setHeader4 Cookie: language=de;; pksession=$sid

attr PHeiz sidURL http://192.168.68.250/index.cgi
attr PHeiz sid1Header1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr PHeiz sid1Header2 application/json, text/javascript, */*;; q=0.01
attr PHeiz sid1Header3 Accept-Language: de
attr PHeiz sid1Header4 Cookie: language=de
attr PHeiz sid1Data username=Oeko&password=Schalter&language=de&submit=Anmelden

attr PHeiz sid1IDRegex pksession=([0-9]+);;

attr PHeiz setReAuthRegex .*

attr PHeiz reAuthRegex .*

attr PHeiz requestHeader1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr PHeiz requestHeader2 application/json, text/javascript, */*;; q=0.01
attr PHeiz requestHeader3 Accept-Language: de
attr PHeiz requestHeader4 Cookie: language=de;; pksession=$sid
attr PHeiz requestData ["CAPPL:LOCAL.L_aussentemperatur_ist"]

attr PHeiz reading01Name Aussentemp
attr PHeiz reading01Regex CAPPL:LOCAL.L_aussentemperatur_ist","value":"([0-9]+)"

attr PHeiz reading01Expr $val / 10

attr PHeiz verbose 5


Meldungen
2014.11.28 20:08:50 1: Including fhem.cfg
2014.11.28 20:08:50 3: telnetPort: port 7072 opened
2014.11.28 20:08:50 3: WEB: port 8083 opened
2014.11.28 20:08:50 3: WEBphone: port 8084 opened
2014.11.28 20:08:50 3: WEBtablet: port 8085 opened
2014.11.28 20:08:51 2: eventTypes: loaded 710 events from ./log/eventTypes.txt
2014.11.28 20:08:51 1: Including ./log/fhem.save
2014.11.28 20:08:53 4: PHeiz: GetUpdate called, hash = HASH(0x2f8a7b8), name = PHeiz
2014.11.28 20:08:53 5: PHeiz: AddToQueue initial send queue length : 0
2014.11.28 20:08:53 5: PHeiz: AddToQueue type Update to URL http://192.168.68.250/?action=get&attr=1, data ["CAPPL:LOCAL.L_aussentemperatur_ist"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid
2014.11.28 20:08:53 5: PHeiz: handle send queue, len = 1
2014.11.28 20:08:53 4: PHeiz: HandleSendQueue sends Request type Update to URL http://192.168.68.250/?action=get&attr=1, data ["CAPPL:LOCAL.L_aussentemperatur_ist"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid, timeout 2
2014.11.28 20:08:53 5: PHeiz: Read Callback: Request type was Update, buffer: Error 403: Forbidden
You do not have sufficient privileges to access the page that you requested.


2014.11.28 20:08:53 5: PHeiz: checking response with ReAuthRegex .*
2014.11.28 20:08:53 4: PHeiz: New Authentication required
2014.11.28 20:08:53 4: PHeiz: sid with Steps 1
2014.11.28 20:08:53 5: PHeiz: AddToQueue initial send queue length : 0
2014.11.28 20:08:53 5: PHeiz: AddToQueue type Auth1 to URL http://192.168.68.250/index.cgi, data username=Oeko&password=Schalter&language=de&submit=Anmelden, header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de
2014.11.28 20:08:53 5: PHeiz: handle send queue, len = 1
2014.11.28 20:08:53 5: PHeiz: HandleSendQueue minSendDelay not over, rescheduling
2014.11.28 20:08:53 4: PHeiz: Retrying GetUpdate with new retryCount 1 ...
2014.11.28 20:08:53 5: PHeiz: AddToQueue initial send queue length : 1
2014.11.28 20:08:53 5: PHeiz: AddToQueue type Update to URL http://192.168.68.250/?action=get&attr=1, data ["CAPPL:LOCAL.L_aussentemperatur_ist"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid
2014.11.28 20:08:53 5: PHeiz: handle send queue, len = 2
2014.11.28 20:08:53 5: PHeiz: HandleSendQueue minSendDelay not over, rescheduling
2014.11.28 20:08:54 5: PHeiz: handle send queue, len = 2
2014.11.28 20:08:54 4: PHeiz: HandleSendQueue sends Request type Auth1 to URL http://192.168.68.250/index.cgi, data username=Oeko&password=Schalter&language=de&submit=Anmelden, header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de, timeout 2
2014.11.28 20:08:55 5: PHeiz: handle send queue, len = 1
2014.11.28 20:08:55 5: PHeiz: still waiting for reply to last request, delay sending from queue
2014.11.28 20:08:56 3: PHeiz: Read Callback: Request type was Auth1, buffer:
, Error http://192.168.68.250:80/: Too many redirects
2014.11.28 20:08:56 5: PHeiz: handle send queue, len = 1
2014.11.28 20:08:56 4: PHeiz: HandleSendQueue sends Request type Update to URL http://192.168.68.250/?action=get&attr=1, data ["CAPPL:LOCAL.L_aussentemperatur_ist"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid, timeout 2
2014.11.28 20:08:57 5: PHeiz: Read Callback: Request type was Update, buffer: Error 403: Forbidden
You do not have sufficient privileges to access the page that you requested.


2014.11.28 20:08:57 5: PHeiz: checking response with ReAuthRegex .*
2014.11.28 20:08:57 4: PHeiz: New Authentication required
2014.11.28 20:08:57 5: PHeiz: start extracting Readings from Response to GetUpdate
2014.11.28 20:08:57 5: PHeiz: Trying to extract Reading Aussentemp with regex /CAPPL:LOCAL.L_aussentemperatur_ist","value":"([0-9]+)"/...
2014.11.28 20:08:57 3: PHeiz: Response didn't match Reading(s) Aussentemp
2014.11.28 20:08:57 4: PHeiz: response was Error 403: Forbidden
You do not have sufficient privileges to access the page that you requested.

2014.11.28 20:09:54 4: PHeiz: GetUpdate called, hash = HASH(0x2f8a7b8), name = PHeiz
2014.11.28 20:09:54 5: PHeiz: AddToQueue initial send queue length : 0
2014.11.28 20:09:54 5: PHeiz: AddToQueue type Update to URL http://192.168.68.250/?action=get&attr=1, data ["CAPPL:LOCAL.L_aussentemperatur_ist"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid
2014.11.28 20:09:54 5: PHeiz: handle send queue, len = 1
2014.11.28 20:09:54 4: PHeiz: HandleSendQueue sends Request type Update to URL http://192.168.68.250/?action=get&attr=1, data ["CAPPL:LOCAL.L_aussentemperatur_ist"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid, timeout 2
2014.11.28 20:09:54 5: PHeiz: Read Callback: Request type was Update, buffer: Error 403: Forbidden
You do not have sufficient privileges to access the page that you requested.


2014.11.28 20:09:54 5: PHeiz: checking response with ReAuthRegex .*
2014.11.28 20:09:54 4: PHeiz: New Authentication required
2014.11.28 20:09:54 4: PHeiz: sid with Steps 1
2014.11.28 20:09:54 5: PHeiz: AddToQueue initial send queue length : 0
2014.11.28 20:09:54 5: PHeiz: AddToQueue type Auth1 to URL http://192.168.68.250/index.cgi, data username=Oeko&password=Schalter&language=de&submit=Anmelden, header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de
2014.11.28 20:09:54 5: PHeiz: handle send queue, len = 1
2014.11.28 20:09:54 5: PHeiz: HandleSendQueue minSendDelay not over, rescheduling
2014.11.28 20:09:54 4: PHeiz: Retrying GetUpdate with new retryCount 1 ...
2014.11.28 20:09:54 5: PHeiz: AddToQueue initial send queue length : 1
2014.11.28 20:09:54 5: PHeiz: AddToQueue type Update to URL http://192.168.68.250/?action=get&attr=1, data ["CAPPL:LOCAL.L_aussentemperatur_ist"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid
2014.11.28 20:09:54 5: PHeiz: handle send queue, len = 2
2014.11.28 20:09:54 5: PHeiz: HandleSendQueue minSendDelay not over, rescheduling
2014.11.28 20:09:55 5: PHeiz: handle send queue, len = 2
2014.11.28 20:09:55 4: PHeiz: HandleSendQueue sends Request type Auth1 to URL http://192.168.68.250/index.cgi, data username=Oeko&password=Schalter&language=de&submit=Anmelden, header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de, timeout 2
2014.11.28 20:09:56 5: PHeiz: handle send queue, len = 1
2014.11.28 20:09:56 5: PHeiz: still waiting for reply to last request, delay sending from queue
2014.11.28 20:09:56 3: PHeiz: Read Callback: Request type was Auth1, buffer:
, Error http://192.168.68.250:80/: Too many redirects
2014.11.28 20:09:57 5: PHeiz: handle send queue, len = 1
2014.11.28 20:09:57 4: PHeiz: HandleSendQueue sends Request type Update to URL http://192.168.68.250/?action=get&attr=1, data ["CAPPL:LOCAL.L_aussentemperatur_ist"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid, timeout 2
2014.11.28 20:09:57 5: PHeiz: Read Callback: Request type was Update, buffer: Error 403: Forbidden
You do not have sufficient privileges to access the page that you requested.


2014.11.28 20:09:57 5: PHeiz: checking response with ReAuthRegex .*
2014.11.28 20:09:57 4: PHeiz: New Authentication required
2014.11.28 20:09:57 5: PHeiz: start extracting Readings from Response to GetUpdate
2014.11.28 20:09:57 5: PHeiz: Trying to extract Reading Aussentemp with regex /CAPPL:LOCAL.L_aussentemperatur_ist","value":"([0-9]+)"/...
2014.11.28 20:09:57 3: PHeiz: Response didn't match Reading(s) Aussentemp
2014.11.28 20:09:57 4: PHeiz: response was Error 403: Forbidden
You do not have sufficient privileges to access the page that you requested.


Gruß

Jürgen

StefanStrobel

Hallo Jürgen,

Der HTTP-Request, der de Anmeldedaten schickt wird von Deiner Heizung mit Redirects beantwortet. Die HttpUtils, die von HTTPMOD verwendet werden, brechen nach dem 5. Redirect ab. Leider sehen wir bisher im Log nur das Ergebnis, aber nicht die einzelnen Redirects.
Mach doch mal einen

attr global verbose 4


Dann loggen zwar auch alle anderen Module, aber ohne Code-Änderungen bekommen wir sonst leider keine Logs von den HttpUtils.
Dann bin ich gespannt, was wir im Log über die Redirects sehen.

In Deinem Post mit den Burp-Daten sehe ich leider nicht so wirklich wie die Antworten auf die Login-Daten zusammen hängen. kann es sein, dass da die Antworten auf einige Requests fehlen?

Gruss
   Stefan

JueFi

#19
Hallo Stefan,

ich habe versucht, nach bestem Wissen die Burp-Daten zu posten


2014.11.29 10:41:16 1: Including fhem.cfg
2014.11.29 10:41:16 3: telnetPort: port 7072 opened
2014.11.29 10:41:16 3: WEB: port 8083 opened
2014.11.29 10:41:16 3: WEBphone: port 8084 opened
2014.11.29 10:41:16 3: WEBtablet: port 8085 opened
2014.11.29 10:41:16 2: eventTypes: loaded 1007 events from ./log/eventTypes.txt
2014.11.29 10:41:16 3: Opening CUL1 device /dev/ttyACM0
2014.11.29 10:41:16 3: Setting CUL1 baudrate to 9600
2014.11.29 10:41:16 3: CUL1 device opened
2014.11.29 10:41:16 3: CUL1: Possible commands: BbCFiAZEGMKUYRTVWXefmltux
2014.11.29 10:41:16 3: Opening CUL2 device /dev/ttyACM1
2014.11.29 10:41:16 3: Setting CUL2 baudrate to 9600
2014.11.29 10:41:16 3: CUL2 device opened
2014.11.29 10:41:17 3: CUL2: Possible commands: BbCFiAZEGMKUYRTVWXefmltux
2014.11.29 10:41:17 1: Including ./log/fhem.save
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60206 GET /fhem/pgm2/style.css
2014.11.29 10:41:18 4: Connection accepted from FHEMWEB:192.168.68.208:60209
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60209 GET /fhem/pgm2/svg.js
2014.11.29 10:41:18 4: Connection accepted from FHEMWEB:192.168.68.208:60210
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60206 GET /fhem/pgm2/fhemweb_readingsHistory.js
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60209 GET /fhem/pgm2/fhemweb_slider.js
2014.11.29 10:41:18 4: Connection accepted from FHEMWEB:192.168.68.208:60211
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60206 GET /fhem/pgm2/fhemweb_svg.js
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60210 GET /fhem/pgm2/fhemweb.js
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60209 GET /fhem/pgm2/fhemweb_textField.js
2014.11.29 10:41:18 4: Connection accepted from FHEMWEB:192.168.68.208:60212
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60206 GET /fhem/pgm2/fhemweb_time.js
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60211 GET /fhem/pgm2/fhemweb_colorpicker.js
2014.11.29 10:41:18 4: Connection accepted from FHEMWEB:192.168.68.208:60213
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60212 GET /fhem/pgm2/fhemweb_multiple.js
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60210 GET /fhem/pgm2/defaultCommon.css
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60213 GET /fhem/pgm2/fhemweb_noArg.js
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60210 GET /fhem/pgm2/dashboard_style.css
2014.11.29 10:41:18 4: HTTP FHEMWEB:192.168.68.208:60210 GET /fhem?XHR=1&inform=type=status;filter=×tamp=1417254080022
2014.11.29 10:41:19 4: PHeiz: GetUpdate called, hash = HASH(0x186e908), name = PHeiz
2014.11.29 10:41:19 4: PHeiz: HandleSendQueue sends Request type Update to URL http://192.168.68.250/?action=get&attr=1, data ["CAPPL:LOCAL.L_aussentemperatur_ist"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid, timeout 2
2014.11.29 10:41:19 4: HttpUtils url=http://192.168.68.250/?action=get&attr=1
2014.11.29 10:41:19 4: http://192.168.68.250/?action=get&attr=1: HTTP response code 403
2014.11.29 10:41:19 4: HttpUtils http://192.168.68.250/?action=get&attr=1: Got data, length: 98
2014.11.29 10:41:19 4: PHeiz: New Authentication required
2014.11.29 10:41:19 4: PHeiz: sid with Steps 1
2014.11.29 10:41:19 4: PHeiz: Retrying GetUpdate with new retryCount 1 ...
2014.11.29 10:41:20 4: PHeiz: HandleSendQueue sends Request type Auth1 to URL http://192.168.68.250/index.cgi, data username=Oeko&password=Schalter&language=de&submit=Anmelden, header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de, timeout 2
2014.11.29 10:41:20 4: HttpUtils url=http://192.168.68.250/index.cgi
2014.11.29 10:41:21 4: http://192.168.68.250/index.cgi: HTTP response code 303
2014.11.29 10:41:21 4: HttpUtils http://192.168.68.250/index.cgi: Redirect to http://192.168.68.250:80/
2014.11.29 10:41:21 4: HttpUtils url=http://192.168.68.250:80/
2014.11.29 10:41:21 4: http://192.168.68.250:80/: HTTP response code 303
2014.11.29 10:41:21 4: HttpUtils http://192.168.68.250:80/: Redirect to http://192.168.68.250:80/
2014.11.29 10:41:21 4: HttpUtils url=http://192.168.68.250:80/
2014.11.29 10:41:21 4: http://192.168.68.250:80/: HTTP response code 303
2014.11.29 10:41:21 4: HttpUtils http://192.168.68.250:80/: Redirect to http://192.168.68.250:80/
2014.11.29 10:41:21 4: HttpUtils url=http://192.168.68.250:80/
2014.11.29 10:41:21 4: http://192.168.68.250:80/: HTTP response code 303
2014.11.29 10:41:21 4: HttpUtils http://192.168.68.250:80/: Redirect to http://192.168.68.250:80/
2014.11.29 10:41:21 4: HttpUtils url=http://192.168.68.250:80/
2014.11.29 10:41:22 4: http://192.168.68.250:80/: HTTP response code 303
2014.11.29 10:41:22 4: HttpUtils http://192.168.68.250:80/: Redirect to http://192.168.68.250:80/
2014.11.29 10:41:22 4: HttpUtils url=http://192.168.68.250:80/
2014.11.29 10:41:22 4: http://192.168.68.250:80/: HTTP response code 303
2014.11.29 10:41:22 3: PHeiz: Read Callback: Request type was Auth1, buffer:
, Error http://192.168.68.250:80/: Too many redirects
2014.11.29 10:41:22 4: PHeiz: HandleSendQueue sends Request type Update to URL http://192.168.68.250/?action=get&attr=1, data ["CAPPL:LOCAL.L_aussentemperatur_ist"], header Content-Type: application/x-www-form-urlencoded; charset=UTF-8
application/json, text/javascript, */*; q=0.01
Accept-Language: de
Cookie: language=de; pksession=$sid, timeout 2
2014.11.29 10:41:22 4: HttpUtils url=http://192.168.68.250/?action=get&attr=1
2014.11.29 10:41:22 4: http://192.168.68.250/?action=get&attr=1: HTTP response code 403
2014.11.29 10:41:22 4: HttpUtils http://192.168.68.250/?action=get&attr=1: Got data, length: 98
2014.11.29 10:41:22 4: PHeiz: New Authentication required
2014.11.29 10:41:23 3: PHeiz: Response didn't match Reading(s) Aussentemp
2014.11.29 10:41:23 4: PHeiz: response was Error 403: Forbidden
You do not have sufficient privileges to access the page that you requested.

2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60213 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=
2014.11.29 10:41:24 4: /fhem/FileLog_logWrapper?dev=Logfile&type=text&file= / RL:898 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60211 GET /fhem/pgm2/fhemweb.js
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60213 GET /fhem/pgm2/style.css
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60212 GET /fhem/pgm2/svg.js
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60209 GET /fhem/pgm2/fhemweb_multiple.js
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60206 GET /fhem/pgm2/fhemweb_colorpicker.js
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60211 GET /fhem/pgm2/fhemweb_noArg.js
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60213 GET /fhem/pgm2/fhemweb_readingsHistory.js
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60209 GET /fhem/pgm2/fhemweb_svg.js
2014.11.29 10:41:24 4: Connection accepted from FHEMWEB:192.168.68.208:60215
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60206 GET /fhem/pgm2/fhemweb_textField.js
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60211 GET /fhem/pgm2/defaultCommon.css
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60212 GET /fhem/pgm2/fhemweb_slider.js
2014.11.29 10:41:24 4: Connection closed for FHEMWEB:192.168.68.208:60210
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60215 GET /fhem/pgm2/fhemweb_time.js
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60211 GET /fhem/pgm2/dashboard_style.css
2014.11.29 10:41:24 4: HTTP FHEMWEB:192.168.68.208:60211 GET /fhem/FileLog_logWrapper?XHR=1&inform=type=status;filter=×tamp=1417254085787
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60215 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2014-11.log
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60215 GET /fhem/pgm2/style.css
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60212 GET /fhem/pgm2/svg.js
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60209 GET /fhem/pgm2/fhemweb_colorpicker.js
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60215 GET /fhem/pgm2/fhemweb_noArg.js
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60206 GET /fhem/pgm2/fhemweb.js
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60213 GET /fhem/pgm2/fhemweb_multiple.js
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60209 GET /fhem/pgm2/fhemweb_slider.js
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60215 GET /fhem/pgm2/fhemweb_svg.js
2014.11.29 10:41:27 4: Connection accepted from FHEMWEB:192.168.68.208:60217
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60206 GET /fhem/pgm2/fhemweb_time.js
2014.11.29 10:41:27 4: Connection closed for FHEMWEB:192.168.68.208:60211
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60212 GET /fhem/pgm2/fhemweb_readingsHistory.js
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60217 GET /fhem/pgm2/fhemweb_textField.js
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60213 GET /fhem/pgm2/defaultCommon.css
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60213 GET /fhem/pgm2/dashboard_style.css
2014.11.29 10:41:27 4: HTTP FHEMWEB:192.168.68.208:60213 GET /fhem/FileLog_logWrapper?XHR=1&inform=type=status;filter=×tamp=1417254088745
2014.11.29 10:41:29 4: BlockingCall created child (3177), uses telnetForBlockingFn to connect back
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60217 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2014-11.log
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60217 GET /fhem/pgm2/style.css
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60209 GET /fhem/pgm2/fhemweb_multiple.js
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60215 GET /fhem/pgm2/fhemweb_colorpicker.js
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60206 GET /fhem/pgm2/fhemweb.js
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60217 GET /fhem/pgm2/fhemweb_noArg.js
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60212 GET /fhem/pgm2/svg.js
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60209 GET /fhem/pgm2/fhemweb_readingsHistory.js
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60215 GET /fhem/pgm2/fhemweb_svg.js
2014.11.29 10:41:42 4: Connection accepted from FHEMWEB:192.168.68.208:60220
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60206 GET /fhem/pgm2/fhemweb_textField.js
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60217 GET /fhem/pgm2/fhemweb_time.js
2014.11.29 10:41:42 4: Connection closed for FHEMWEB:192.168.68.208:60213
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60212 GET /fhem/pgm2/defaultCommon.css
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60220 GET /fhem/pgm2/fhemweb_slider.js
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60212 GET /fhem/pgm2/dashboard_style.css
2014.11.29 10:41:42 4: HTTP FHEMWEB:192.168.68.208:60212 GET /fhem/FileLog_logWrapper?XHR=1&inform=type=status;filter=×tamp=1417254104019
2014.11.29 10:41:46 4: Connection accepted from telnet:127.0.0.1:41673


Du hast eine PM, hoffe das hilft.
Viele Grüße

Jürgen

StefanStrobel

Hallo Jürgen,

das Problem ist jetzt klar:
Deine Heizung sendet das Session Cookie in einer Antwort auf die Login-Daten mit einer gleichzeitigen Umleitung (Code 303). Der Code 303 wird jedoch nicht von HTTPMOD verarbeitet sondern direkt von den Fhem HttpUtils. HttpUtils verarbeiten jedoch das Cookie nicht und so kommt es zu einer Umleitungs-Schleife.
Spannend :-)

Ich werde da wohl einen Patch für die HttpUtils schreiben müssen. Ich melde mich wieder.

Gruss
   Stefan

JueFi

Hallo Stefan,
Sorry für die vielen Probleme - hoffentlich finden sich noch andere, die von der Lösung profitieren können.

Ich werde wenns läuft Werbung im Haustechnik Forum machen.

Ganz herzlichen Dank für deine Mühe.

Jürgen


kepech

Hallo,
ich lese seit einigen Stunden im Forum.
Habe etwa die gleiche Heizungskonfiguration im Einsatz und hatte die gleichen Wünsche.
Eine Lösung würde schon zwei Anwendern helfen.

Die Daten auf dem USB-Stick sind pro Tag als CSV File mit 1440 Zeilen und über 50 Spalten abgelegt.
Nicht alle Spalten sind aussagekräftig.
Alle Daten müssten zur Weiterverarbeitung automatisch vom Smart auf Server kopiert werden.
Mein Fernziel zur Analyse ist ein Frontend mit Wahl des Tages und der zu darstellenden Spalten.

Als Laie werde ich noch einige Zeit brauchen um mich einzulesen, bevor ich aktiv werden kann.

Danke und Gruss
Peter

JueFi

#23
Hallo Peter,

willkommen im Forum.
Wenn ich dich richtig verstehe, möchtest du die CSV Dateien vom an der Heizung hängenden USB-Stick auslesen ?
Das würde wahrscheinlich klappen, da die Heizung - zumindest bei mir - auf ein SSH antwortet.
Aber bisher ist es mir nicht gelungen, einen gültigen User und Passwort zu finden.

Der Ansatz hier ist anders. Ich habe ein WebInterface mit dem ich auf die Heizung zugreifen kann.
Ich bin mir nicht sicher, ob das immer verfügbar ist, oder ob man das zukaufen musste.
Ich habe als Bediendisplay ein "Pelletronic Touch", ich meine, damit kommt dann auch das Web-Interface mit.
Sorry, das ich dir das nicht mit mehr Verbindlichkeit sagen kann.
Du könntest auch mal mit Ökofen Kontakt aufnehmen und Fragen.

Aber jetzt nochmal zu unserer Lösung - naja bis jetzt ist es erst ein Lösungsversuch  ;)
Meine Heizung hängt also an einem Ethernet-Anschluss und ich kann ein WebInterface aufrufen (Siehe Bild).
Stefan - the Brain ;) - baut gerade an einer Lösung, sodass wir das Webinterface steuern können und somit z.B. jede Minute die Werte auslesen können, die dort angezeigt werden. Das sind im Prinzip alle Werte, die verfügbar sind.
Per FHEM können wir die dann als Grafiken darstellen oder auch Reaktionen ableiten und Werte in der Heizung ändern.
Meinen Ansatz hattest du ja vielleicht gelesen. Ich habe eine Solarthermie Anlage angeschlossen und will bei Sonne "warten" und den Brenner ausschalten.

Viele Grüße

Jürgen

JueFi

#24
Hallo Peter,

etwas OffTopic.

Ich habe eine EXCEL-Vorlage, die mir solche Grafiken erzeugt.
Ist aber wie du ja auch schon geschrieben hast Handarbeit.
Also den Stick aus dem Keller holen, die Dateien (pro Tag eine) auf den Rechner kopieren, per Skript die Werte rausholen, die EXCEL auswerten soll, pro Tag eine EXCEL-Tabelle füllen (das könnte man mit entsprechendem Makro Know-How sicher automatisieren), raus kommt dann die Grafik.

Wahrscheinlich könnte man die Werte auch in FHEM ablegen und dort die Grafiken erstellen lassen.

PS: Hier sieht man auch sehr schön, was ich meine. Der Brenner hätte um 12:00 nicht mehr anspringen brauchen, da die Solarthermie bereits angefangen hat zu arbeiten.
Und je kälter dann der Pufferspeicher ist, um so einfacher kann die Wärme der Solarthermie-Anlage genutzt werden.

Viele Grüße

Jürgen

StefanStrobel

Hallo Jürgen / Peter,

ich habe unter "Sonstiges" eine neue Version von HTTPMOD gepostet, die ein paar Probleme löst. Damit Eure Pellet-Heizung unterstützt wird, fehlt dann noch ein kleiner Patch für die HttpUtils, den ich im Develpment-Forum vorgeschlagen habe. Der muss erst noch akzeptiert / integriert werden. Dann ist das mit der Heizung eigentlich gelöst.

Weitere Werte oder auch Set-Parameter könnt Ihre dann entsprechend dem Beispiel sicher selbst erweitern. Ebenso wie Plots etc.

Die Konfiguration würde dann prinzipiell so aussehen:


#
# Test: Pellet
#

define PHeiz HTTPMOD http://DeineHeizungsIP/?action=get&attr=1 60

# regelmaessiges Abfragen von Werten
attr PHeiz reading01Name Aussentemp
attr PHeiz reading01Regex CAPPL:LOCAL.L_aussentemperatur_ist","value":"([0-9]+)"
attr PHeiz reading01Expr $val / 10

attr PHeiz requestHeader1 Accept-Language: de
attr PHeiz requestHeader2 Cookie: language=de;; pksession=$sid
attr PHeiz requestData ["CAPPL:LOCAL.L_aussentemperatur_ist"]
attr PHeiz reAuthRegex Error 403: Forbidden

#attr PHeiz verbose 5
attr PHeiz timeout 10

# für das Setzen eines Wertes (Betriebsart)
attr PHeiz set1Name Betriebsart
attr PHeiz set1Data {"CAPPL:FA[0].betriebsart_fa":"$val"}
attr PHeiz set1Map 0:Aus,1:An
attr PHeiz setURL http://DeineHeizungsIP/?action=set
attr PHeiz setHeader1 Accept-Language: de
attr PHeiz setHeader2 Cookie: language=de;; pksession=$sid
attr PHeiz setReAuthRegex Error 403: Forbidden

# für die Anmeldung
attr PHeiz sidURL http://DeineHeizungsIP/index.cgi
attr PHeiz sid1Data username=Oeko&password=DeinGeheimesPasswort&language=de&submit=Anmelden
attr PHeiz sid1Header1 Accept-Language: de
attr PHeiz sid1IDRegex pksession=([0-9]+);;
attr PHeiz sid1IgnoreRedirects 1


wie schnell das jetzt alles umgesetzt wird kann ich Dir nicht sagen. Das kommt darauf an wie Rudi Zeit hat sich meinen Patch anzusehen und ob er noch etwas daran ändern möchte.

Gruss
   Stefan

JueFi

 :D :D :D
Nachdem ich nun gefunden habe, wie ich an die HttpUtils rankomme, sieht das richtig gut aus.
Die Außentemperatur kommt zurück.
Das Setzen der Betriebsart klappt.

Jetzt kommt meine Arbeit  ;)

Gaaaanz herzlichen Dank und viele Grüße.

Jürgen

JueFi

So geht gut voran - für meine Verhältnisse  ;)
Mal eine Frage:
Ich möchte bestimmte Werte nur einmal am Tag loggen
- Brennerstunden - der Wert wird in der Heizung immer weiter aufsummiert
- Solartagesertrag - der Wert wird pro Tag gebildet

1. Ich vermute, man legt dann am Besten eine neue LOG-Datei an, in die das ganze Jahr geschrieben wird (also sowas wie PHeiz2-%Y.log)
2. Wie mache ich das mit HTTPMOD ?
Zusätzlich define PHeiz2 .... und alle Zeilen müssen verdoppelt werden mit PHeiz2 ?
Kann dass zu Kollisionen führen, falls das parallel läuft oder geht das eleganter ?
3. Habe ich für die Brennerstunden eine Möglichkeit die Differenz zum Vortag zu bilden und nur die Differenz zu speichern ?

Gruß

Jürgen

StefanStrobel

Hallo Jürgen,

schau Dir mal die Module average oder auch statistics an.
Bei der Differenz zum Vortrag müsste ich selbst erst mal recherchieren, aber Max / Min / Avg etc. sind da drin.

Gruss
   Stefan

kepech

Hallo Jürgen,

vielen Dank für deine Antworten. Unser Garten musste noch wintertauglich gemacht werden und dafür wurden meine Computerstunden gestrichen, daher meine Sendepause.
Auch bei mir hängt die Smart am Ethernet.

Ich hatte mich mit OOCalc Scripting beschäftigt um die viele Handarbeit zu reduzieren (wie kann man zum Beispiel nur Kommata statt Punkte in Werten verwenden).
Das Resultat ist noch nicht befriedigend, da das Script für jeden Tag laufen muss.

Die Datenmenge pro Tag, ein CSV File mit 1439 Zeilen und 56 Spalten, ruft für mich danach, in einer Datenbank abgelegt zu werden.
Bei mir läuft die Smart seit 2012, da ist einiges an Daten zusammen gekommen.
Mit einer Datenbank müssten Auswertungen flexibler erstellt werden können.
Auf meinem Synology NAS läuft MariaDB. Ich versuche darin diese Datenbank zu erstellen. Als Anfänger mit dieser Grössenordnung (56 Spalten) zu starten ist nicht auf Anhieb erfolgreich.
Wenn die Datenbank mal steht, könnte man die vorhandenen Daten einfüllen und die zukünftigen über deine FHEM Lösung speichern.

Ich traue der Steuerung noch nicht ganz und hatte bei Auswertungen auch schon Fehler gefunden und gemeldet.

Ich werde weiter interessiert mitlesen und mich bei Fragen oder Erfolgserlebnissen melden.

Peter

JueFi

Hi Peter,

falls ich noch was an Infos liefern kann, sag Bescheid.

Viele Grüße

Jürgen

Moonraker1

Hallo zusammen,

und hier ist noch ein Neuling in FHEM...

Soll heißen, ich habe mich unter anderem im Wiki und im Forum schon ein wenig eingelesen.

Wir haben zuhause seit ca. 1 Jahr auch einen Ökofen Pelletkessel (PES20 mit Pelletronic Touch und Netzwerkanbindung). Ich habe mir regelmäßig die .csv-Dateien auf USB gezogen, nach excel kopiert und Graphen erstellt. Auf diese Weise konnte ich die Anfangsstartfrequenz von ca. 12-15 mal am Tag auf 4-5mal reduzieren.

Ich plane jetzt den Einstieg mit FHEM (zunächst mal ganz klein nur zum Testen mit einem MAx-Heizkörperthermostat), um perspektivisch auch die Heizung mit anzubinden.

Gerade diesen Beitrag verfolge ich mit großem Interesse. Leider kann ich noch nicht viel aktiv beitragen, aber ich hoffe, das ändert sich, sobald die FHEM-Hardware (Intel NUC mit CUL868) da ist und ich mich ein bisschen mit Perl angefreundet habe... (meine Programmierzeiten mit C sind eine halbe Ewigkeit her  ::))

erstmal viele Grüße an alle

Oliver
NUC mit Ubuntu, MAX!Cube über LAN, 1 MAX WT, 8 MAX HT, 2 MAX Fensterkontakt, MaxScanner, HM CCU2 mit Homematic HT's, div. Schaltern, Bewegungsmelder, Ökofen Pelletheizung über httpmod

JueFi

Update im ersten Beitrag
EDIT: 15.12.14:
- Ein paar weitere Werte abgefragt
- Anzeige der Außentemperatur über dem Plot
- Anzeige der "BrennerStunden Heute" über dem Plot
- Anzeige des "Solarertrags Heute" über dem Plot

Moonraker1

Hallo Jürgen,

klasse Arbeit!

Dank Deiner Vorlage (und natürlich des aktualisierten HTTPMOD's von Stefan ...) habe ich es jetzt innerhalb kurzer Zeit auch geschafft.

Die Pelletronic ist erfolgreich an den FHEM-Server (Intel NUC unter Ubuntu 14.04 LTS) angebunden (über LAN) und überträgt fleißig, auch die Visualisierung der SVG-Plots auf dem Tablet läuft 1a.
Jetzt kann ich mich in Verbindung mit den verbauten MAX!-Thermostaten an die Optimierung der Heizung machen.

Eine Frage zu den Readings habe ich noch: gibt es noch mehr verfügbare Readings zum Auslesen? Speziell die Zirkulationspumpe und die Solarfühler interessieren mich hier, da ich sie zur Warmwasserbereitung "zweckentfremdet" habe.

Wie finde ich evtl. weitere von der Pelletronic lieferbare Readings und vor allem deren Namen heraus?


Erholsame Feirtage und einen guten Rutsch!

Oliver


NUC mit Ubuntu, MAX!Cube über LAN, 1 MAX WT, 8 MAX HT, 2 MAX Fensterkontakt, MaxScanner, HM CCU2 mit Homematic HT's, div. Schaltern, Bewegungsmelder, Ökofen Pelletheizung über httpmod

JueFi

#34
Hallo Oliver,

zum Prinzip:
In diese Variable (attr PHeiz requestData) muss der zusätzliche Wert/Parameter eingefügt werden, den du abfragen möchtest.
Dabei spielt es keine Rolle, in welchem (Unter-)Menü dieser im Web-Interface der Heizung zu finden ist.

attr PHeiz requestData ["CAPPL:LOCAL.L_aussentemperatur_ist","CAPPL:FA[0].L_kesseltemperatur","CAPPL:LOCAL.L_hk[0].vorlauftemp_ist","CAPPL:LOCAL.L_hk[1].vorlauftemp_ist","CAPPL:LOCAL.L_ww[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].einschaltfuehler_ist","CAPPL:LOCAL.L_pu[0].ausschaltfuehler_ist","CAPPL:LOCAL.L_sk[0].speichertemp_ist","CAPPL:LOCAL.L_sk[0].kollektortemp_ist","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[0].L_kesselstatus","CAPPL:FA[0].L_saugintervall","CAPPL:FA[0].L_brennerlaufzeit_anzeige","CAPPL:LOCAL.ertrag[0].leistung_tag"]

Dann ein Reading erzeugen
(fortlaufende Nummerierung (hier 13),
der Wert muss evtl. noch berechnet werden (z.B. geteilt durch 10),
beachte die "Maskierung" der eckigen Klammern mit einem "\")
attr PHeiz reading13Expr $val / 10
attr PHeiz reading13Name SolarErtrag
attr PHeiz reading13Regex CAPPL:LOCAL.ertrag\[0\].leistung_tag","value":"([0-9]+)"


Weitere Werte/Parameter kann man z.B. folgendermaßen finden:
Microsoft Internet Explorer aufrufen mit der Seite der Heizung, auf der die gewünschten Werte angezeigt werden
(meiner ist in Englisch)
F12 drücken (und warten)
Den Tab "Network" anwählen
"Start Capturing"
Doppelklick auf eine Zeile
"Response Body"

Da sieht man die Parameter, Texte, Inhalte und auch den "Divisor", wenn man teilen muss.
{"formatTexts":"","shortText":"Pumpe","unitText":"%","lowerLimit":"0","upperLimit":"100","name":"CAPPL:LOCAL.L_pu[0].pumpe","value":"0","divisor":"???","status":"OK","unitTextImperial":"%"},

{"formatTexts":"","shortText":"Vorlauftemperatur","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_ertrag[0].vorlauftemp_ist","value":"188","divisor":"10","status":"OK","unitTextImperial":"°F"},

{"formatTexts":"","shortText":"Rücklauftemperatur","unitText":"°C","lowerLimit":"???","upperLimit":"???","name":"CAPPL:LOCAL.L_ertrag[0].ruecklauftemp_ist","value":"188","divisor":"10","status":"OK","unitTextImperial":"°F"},


EDIT: und noch ein Bild im Anhang
Viele Grüße

Jürgen

JueFi

Zitat von: Moonraker1 am 04 Dezember 2014, 22:00:27
Auf diese Weise konnte ich die Anfangsstartfrequenz von ca. 12-15 mal am Tag auf 4-5mal reduzieren.

Hallo Oliver,

beschreib doch mal, was du verändert hast.

Viele Grüße

Jürgen

Moonraker1

Hallo Jürgen,

zuallererst vielen Dank für Deine Tipps, werde das mal ausprobieren, wenn u.g. fertig ist.

nur ganz kurz, bin am Verzweifeln, meinen CM160 Energiemonitor an FHEM zu bekommen (scheitere gerade an der serial-Port-Erkennung in Ubuntu, es fehlt nur eine winzige Kleinigkeit, aber das als völliger Linux-Neuling herauszufinden  .. puuh).

Zur Heizungs-Optimierung: das ist ein Zusammenspiel einiger komplexer Vorgänge (auch in aller Kürze erstmal, bin müde, morgen ist Geburtstag...):

- Verstehen der hydraulischen Vorgänge im und am Pufferspeicher (hauptsächlich Pufferpumpe im Wechselspiel mit der WW-Boiler-Ladepumpe;  ja, den haben wir noch von der alten Heizung behalten)
- Monitoring des Verhaltens der Temperaturfühler am Puffer (TPO und TPM sowie WW)
- Optimierung der Fühlerpositionen!


so long erstmal, nach Weihnachten gern mehr.

vG

Oliver
NUC mit Ubuntu, MAX!Cube über LAN, 1 MAX WT, 8 MAX HT, 2 MAX Fensterkontakt, MaxScanner, HM CCU2 mit Homematic HT's, div. Schaltern, Bewegungsmelder, Ökofen Pelletheizung über httpmod

Moonraker1

Hallo Jürgen,

eine Ergänzung zum letzten Post:

1) der Owl+USB läuft jetzt auch (ich musste den Aufruf des "cm160server" einfach weglassen in Ubuntu, damit hab ich mir den ttyUSB0-port blockiert...   tja, soviel zur Lernkurve.
2) von gestern auf heute gab es einen kleinen Temperatursturz, und auf einmal war mein Aussentemperaturwert im Logfile "weg" .   ???  Bin jetzt drauf gekommen, dass man den RegEx anpassen muss, da die Heizung positive Temperaturwerte ohne Vorzeichen liefert, negative aber mit einem "-" davor. Die korrekte Attributdefinition muss daher heißen:

CAPPL:LOCAL.L_aussentemperatur_ist","value":"(-[0-9]+|[0-9]+)"

der Operator "|" steht in RegEx für das "or"

viele Grüße

Oliver
NUC mit Ubuntu, MAX!Cube über LAN, 1 MAX WT, 8 MAX HT, 2 MAX Fensterkontakt, MaxScanner, HM CCU2 mit Homematic HT's, div. Schaltern, Bewegungsmelder, Ökofen Pelletheizung über httpmod

JueFi

#38
Zitat von: Moonraker1 am 27 Dezember 2014, 15:38:23
2) von gestern auf heute gab es einen kleinen Temperatursturz, und auf einmal war mein Aussentemperaturwert im Logfile "weg" .   ???  Bin jetzt drauf gekommen, dass man den RegEx anpassen muss, da die Heizung positive Temperaturwerte ohne Vorzeichen liefert, negative aber mit einem "-" davor. Die korrekte Attributdefinition muss daher heißen:

CAPPL:LOCAL.L_aussentemperatur_ist","value":"(-[0-9]+|[0-9]+)"
Jau, habe ich auch gerade gesehen.
Muss auch für die KollektorTemperatur gemacht werden, die ist auch negativ.
Danke für den Hinweis und die richtige Syntax :D

DirkG

#39
Noch eine Ergänzung:

Die Pellematic von Ökofen legt unter <IP-Adresse>/logfiles/pellematic für jeden Tag eine CSV-Datei mit vielen Daten an. Dieses Verzeichnis ist ohne Login-Daten erreichbar.

Die Dateien heißen: touch_<Datum>.csv

Außerdem wird ein Graph der Außentemperatur als PNG abgelegt.

Das erspart einem die Nutzung des USB-Sticks an der Steuerung.

Viele Grüße,

Dirk

Korrektur:
Ich habe mich natürlich doch noch vertippt! Richtig ist zum Beispiel: http://192.168.178.29/logfiles/pelletronic/

Offenbar findet man dort aber nur die Dateien der letzten drei Tage. Als ich das gefunden hatte, war gerade Monatsanfang...

JueFi

#40
Hi Dirk,

danke für die Info - das kannte ich nicht.

Scheint unterschiedlich zu sein. Bei mir heisst das
http://192.168.68.250/logfiles/pelletronic/
und es liegen nur die letzten 4 CSV Dateien da und keine PNGs, aber immerhin :-)

Das sind meine Anlagendaten:
Bedienteil   Touch V02.00m 20130910
CMP1 TO_VA640   (Kesselsteuerung)
HKR1 BOOTLOADER: Lpc17xxBootloader_0.12
HKR1 FIRMWARE: IM110_FW_0.07

Viele Grüße

Jürgen

AKL

Hallo JueFi,

dank deiner Anleitung konnte ich eine zeitlang die Daten meiner Pelletronic auslesen und im ftui visualisieren. Herzlichen Dank für deine tolle Vorlage. Wegen diesem Thema bin ich überhaupt in FHEM eingestiegen  ;)

Leider funktioniert die HTTPMOD Abfrage seit einigen Tagen nicht mehr. Siehe Thread

https://forum.fhem.de/index.php/topic,48888.15.html

Vielleicht kannst du mir einen Rat geben?

Gruß
AKL

JueFi

Eine Ergänzung im ersten Post eingefügt

EDIT: 17.4.16: Folgende zusätzliche Zeile ist mittlerweile in meiner fhem.cfg - ich habe die nicht erzeugt, wurde evtl. durch ein Update erzeugt
attr PHeiz userattr event-min-interval event-on-change-reading reAuthRegex reading01Expr reading01Name reading01Regex reading02Expr reading02Name reading02Regex reading03Expr reading03Name reading03Regex reading04Expr reading04Name reading04Regex reading05Expr reading05Name reading05Regex reading06Expr reading06Name reading06Regex reading07Expr reading07Name reading07Regex reading08Expr reading08Name reading08Regex reading09Expr reading09Name reading09Regex reading10Expr reading10Name reading10Regex reading11Expr reading11Name reading11Regex reading12Expr reading12Name reading12Regex reading13Expr reading13Name reading13Regex requestData requestHeader1 requestHeader2 set1Data set1Map set1Name setHeader1 setHeader2 setReAuthRegex setURL sid1Data sid1Header1 sid1IDRegex sid1IgnoreRedirects sidURL timeout



blueberry63

#43
Hallo,

ich greife das Thema hier nochmal auf.

Wir stellen demnächst auf eine Oekofen-Pelletheizung um und ich wollte fragen, ob die Anbindung an FHEM über HTTPMOD noch aktuell ist? Meines Wissen gibt es mittlerweile eine API, die mittels JSON angesprochen werden kann. Kann dazu jemand etwas sagen?

https://github.com/thannaske/oekofen-json-documentation

Gruß
Blueberry63

P.S.: ich würde auch einen neuen Thread aufmachen, wenn es Sinn macht.
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

JueFi

#44
Ich arbeite noch mit der beschriebenen HTTPMOD Methode
Vielleicht macht es Sinn, das JSON Thema in einem separaten Thread zu behandeln um das hier nicht zu unübersichtlich werden zu lassen ?

EDIT: Das mit dem neuen Thread hattest du auch schon vorgeschlagen, hatte ich übersehen.
Ich habe den Titel hier mal angepasst.

blueberry63

Hallo,

ich habe mal einen neuen Thread für die Anbindung der Oekofen mittels JSON aufgemacht:

https://forum.fhem.de/index.php/topic,126385.0.html

FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

jop

Hallo,
bei mir wurde letzte Woche eine neue Steuerung eingebaut (SPS defekt) und ich versuche seit zwei Tagen anhand der Code-Schnipsel aus dem Thread hier, von meiner Anlage die Daten auszulesen, aber leider ohne Erfolg - wobei ich sagen muss, dass ich mehr der Code-Verwender bin, als dass ich in der Lage wäre selbst was zu entwickeln. Da man jetzt zwei Anmeldungen hat (einmal bei Ökofen mit eMail+PWD und dann bei der Anlage), kam mir der Verdacht, dass die Methode von 2014 mit den neueren Steuerungen vielleicht nicht mehr funktioniert. Weiß vielleicht jemand etwa dazu oder hat die Pelletronic Touch erfolgreich in Fhem eingebunden?
Danke schon mal!
Grüße
Jörg

JueFi

Wie im ersten Beitrag beschrieben beruht der Code auf diesem System
Bedienteil   Touch V02.00m 20130910
CMP1 TO_VA640   (Kesselsteuerung)
HKR1 BOOTLOADER: Lpc17xxBootloader_0.12
HKR1 FIRMWARE: IM110_FW_0.07

ausgelesen im "Hauptmenü" | "Software"

Was hast du denn jetzt auf deiner Anlage ?

blueberry63

@Jop: vielleicht steht bei Dir jetzt auch die JSON-Schnittstelle der Ökofen zur Verfügung (muss im Menü aktiviert werden). Wenn ja, könntest Du mal einen Versuch machen, die JSON-API auszulesen? Meine Heizung kommt erst im August, daher kann ich hier nur theoretisch mitmachen.

Wenn Du Dich dafür entscheidest, bitte hier weitermachen: https://forum.fhem.de/index.php/topic,126385.0.html

Und hier gibt es eine Doku: https://github.com/thannaske/oekofen-json-documentation

Danke
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

jop

Zitat von: JueFi am 20 Mai 2022, 13:31:55
Wie im ersten Beitrag beschrieben beruht der Code auf diesem System
Bedienteil   Touch V02.00m 20130910
CMP1 TO_VA640   (Kesselsteuerung)
HKR1 BOOTLOADER: Lpc17xxBootloader_0.12
HKR1 FIRMWARE: IM110_FW_0.07

ausgelesen im "Hauptmenü" | "Software"

Was hast du denn jetzt auf deiner Anlage ?
Hallo Jürgen,
danke für die schnelle Antwort!
Firmware und Bootloader sind identisch und die Version der Kesselsteuerung ist nicht als Punkt gelistet, aber ich habe Touch V4 ....
Grüße
Jörg


jop

Zitat von: blueberry63 am 20 Mai 2022, 15:03:51
@Jop: vielleicht steht bei Dir jetzt auch die JSON-Schnittstelle der Ökofen zur Verfügung (muss im Menü aktiviert werden). Wenn ja, könntest Du mal einen Versuch machen, die JSON-API auszulesen? Meine Heizung kommt erst im August, daher kann ich hier nur theoretisch mitmachen.

Wenn Du Dich dafür entscheidest, bitte hier weitermachen: https://forum.fhem.de/index.php/topic,126385.0.html

Und hier gibt es eine Doku: https://github.com/thannaske/oekofen-json-documentation

Danke
Blueberry63
Danke, Blueberry63, ich hatte den Post schon gesehen und das wäre meine nächste Hoffnunggewesen. Einen Punkt, bei dem ich die JSON-Api aktivieren kann, habe ich im Menü leider bei mir nicht gefunden.