TCL(?)-Script erstellung, Heizungsdaten auslesen

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

massel
Beiträge: 15
Registriert: 14.11.2021, 11:51
System: CCU
Hat sich bedankt: 1 Mal

Re: TCL(?)-Script erstellung, Heizungsdaten auslesen

Beitrag von massel » 24.11.2021, 19:51

Die Servicemeldungen beziehen sich auf nicht erreichbare Geräte (Geräte außer Reichweite oder Steckdose nicht eingesteckt...) (siehe Bild)
Das letzte Script zeigt nach dem Ausführen im Testfenster leider gar nichts an.
Dateianhänge
DDA6F516-7B9B-4AC9-B532-DA462790A7DA.jpeg

Tyfys
Beiträge: 531
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 26 Mal
Danksagung erhalten: 121 Mal

Re: TCL(?)-Script erstellung, Heizungsdaten auslesen

Beitrag von Tyfys » 24.11.2021, 20:14

Also wenn du das letzte Skript komplett so in das Fenster Skript testen
kopiert hast,
also nach der Zeile WriteLine("Hallo Welt!");

müsstest du irgendetwas sehen.
Bei mir zB. :
massel2.png
massel2.png (16.14 KiB) 1980 mal betrachtet
Weil ich natürlich auch keine Daten habe....

Wenn du nicht mindestens das Hallo Welt! siehst, hast du
möglicherweise nicht alles kopiert und das Skript läuft wegen Syntaxfehler gar nicht erst an.
Gruß
Harry

[sprotte80]
Beiträge: 331
Registriert: 05.10.2020, 18:37
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 23 Mal

Re: TCL(?)-Script erstellung, Heizungsdaten auslesen

Beitrag von [sprotte80] » 25.11.2021, 20:20

Hi
Tyfys hat geschrieben:
24.11.2021, 20:14
Wenn du nicht mindestens das Hallo Welt! siehst, hast du
möglicherweise nicht alles kopiert und das Skript läuft wegen Syntaxfehler gar nicht erst an.
Script hat nen fehler.
In Linie 30 tust du nach quit; ne Klammer zumachen wo keine offene ist.
Zuene Klammer in Linie 28 ist der Fehler.
Wenn du die wegmachen tust dann kommt auch en Output.

Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.

Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.

Tyfys
Beiträge: 531
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 26 Mal
Danksagung erhalten: 121 Mal

Re: TCL(?)-Script erstellung, Heizungsdaten auslesen

Beitrag von Tyfys » 25.11.2021, 20:56

Hallo Thomas

Danke für den Hinweis.
[sprotte80] hat geschrieben:
25.11.2021, 20:20
In Linie 30 tust du nach quit; ne Klammer zumachen wo keine offene ist.
Zuene Klammer in Linie 28 ist der Fehler.
Wenn man auf die Schnelle noch etwas einfügt ....

Interessanterweise läuft das bei mir (CCU2 mit Firmaware 2.59.7) so durch.
Vermutlich mit Daten kommt dann der Fehler zum Tragen.


@ massel: Ich habe das im letzten Skript ausgebessert. Probiers noch einmal.
Gruß
Harry

massel
Beiträge: 15
Registriert: 14.11.2021, 11:51
System: CCU
Hat sich bedankt: 1 Mal

Re: TCL(?)-Script erstellung, Heizungsdaten auslesen

Beitrag von massel » 30.11.2021, 18:09

Soll ich die CCU3 einfach mal zurücksetzen? Haben sich sowieso aus der Anfangsphase viele Schrottprogramme angesammelt, über die ich den Überblick verloren habe. Ich glaub das mache ich mal...

Tyfys
Beiträge: 531
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 26 Mal
Danksagung erhalten: 121 Mal

Re: TCL(?)-Script erstellung, Heizungsdaten auslesen

Beitrag von Tyfys » 04.12.2021, 17:00

Ich konnte nun mit massels Hilfe den Fehler in den Skripts finden und dann natürlich auch beheben.

Hier nun noch einmal die korrigierten Versionen:

Für Aufruf im Fenster Skript testen:

Code: Alles auswählen

! CMI-Heizungsdaten  anlisten /ausgeben in Systemvariablen
!**************************************************************
! Variablen mit Temperaturangaben anlegen als Variablentyp Zahl °C als Masseinheit angeben
! Variablen nicht mit Temperaturangaben anlegen als Variablentyp Logikwert  ( wahr = an  / falsch = aus
!**************************************************************

string  url = "http://admin:admin@192.168.178.95/schematic_files/2.cgi";
integer von = 0;  !erste div id pos nr
integer bis = 29; !letzte div id pos nr
integer ix;
string  stdout;
string  stderr;
string  suche = '<div id="pos';
string  such2 = '</div>';
string  index;
string  wert;
string  sysvar;
real    sv_value;

system.Exec("wget --no-check-certificate -q -O - '" # url # "'", &stdout, &stderr);
if (stdout.Length() == 0)
{
    WriteLine("keine Daten empfangen");
    if (stderr.Length() > 0)
    {
        WriteLine("Fehlermeldung vom Server: " # stderr);
    }
    quit;
}
else
{
    WriteLine(stdout);
}

stdout = stdout.ToLatin();
stdout = stdout.Replace("\n", "");  ! Zeilenumbrüche entfernen
stdout = stdout.Replace("\r", "");  ! da sonst auch im VariablenName bzw VariablenWert 
stdout = stdout.Replace(" °C", ""); ! Masseinheit entfernen
stdout = stdout.Replace("Auto/AUS" , "0");
stdout = stdout.Replace("Auto/EIN" , "1");
stdout = stdout.Replace("Auto" , "0");
stdout = stdout.Replace("OFF" , "0");
stdout = stdout.Replace("ON" , "1");
stdout = stdout.Replace("AUS" , "0");
stdout = stdout.Replace("EIN" , "1");


! Variablen und Werte für die ersten 29 ids   und   34-45
integer loop = 0;

while (loop < 2)
{
    foreach(index, system.GenerateEnum(von, bis))
    {
        var such1 = suche # index;
        WriteLine("Element: " # such1);
        wert = stdout.Substr(stdout.Find(such1) + such1.Length()).Substr(0, (stdout.Substr(stdout.Find(such1) + such1.Length()).Find(such2)));
        wert = wert.Substr(wert.Find(">") + 1);
        ix = index.ToInteger() % 2;
        if (ix == 0)
        {
            sysvar = wert.Replace(" ", "");
            WriteLine("VariablenName: " # sysvar);
        }
        else
        {
            sv_value = wert.ToFloat();
            WriteLine("VariablenWert: " # sv_value);
            object svdp = dom.GetObject(ID_SYSTEM_VARIABLES).Get(sysvar);
            if (svdp)
            {
                svdp.State(sv_value);
                WriteLine("Variable: " # sysvar # " gespeichert mit Wert " # sv_value);
            }
            else
            {
                WriteLine("Variable: " # sysvar # " nicht angelegt für Wert " # sv_value);
            }
        }
    }
    loop = loop + 1;
    von = 34;
    bis = 45;
}


!ausserhalb der anderen Logik
! das id pos - Paar getrennt durch "[" , Paare durch ";" getrennt
string sucharr = "30[32;31[33;46[48;47[49";

foreach(index, sucharr.Split(";"))
{
    var such1 = suche # index.StrValueByIndex("[", 0);
    wert = stdout.Substr(stdout.Find(such1) + such1.Length()).Substr(0, (stdout.Substr(stdout.Find(such1) + such1.Length()).Find(such2)));
    wert = wert.Substr(wert.Find(">") + 1);
    sysvar = wert.Replace(" ", "");

    var such1 = suche # index.StrValueByIndex("[", 1);
    wert = stdout.Substr(stdout.Find(such1) + such1.Length()).Substr(0, (stdout.Substr(stdout.Find(such1) + such1.Length()).Find(such2)));
    wert = wert.Substr(wert.Find(">") + 1);
    sv_value = wert.ToFloat();
    object svdp = dom.GetObject(ID_SYSTEM_VARIABLES).Get(sysvar);
    if (svdp)
    {
        svdp.State(sv_value);
        WriteLine("Variable: " # sysvar # " gespeichert mit Wert " # sv_value);
    }
    else
    {
        WriteLine("Variable: " # sysvar # " nicht angelegt für Wert " # sv_value);
    }
}

Für das periodisch auszuführen Programm:

Code: Alles auswählen

! CMI-Heizungsdaten  ausgeben in Systemvariablen
!**************************************************************
! Variablen mit Temperaturangaben anlegen als Variablentyp Zahl °C als Masseinheit angeben
! Variablen nicht mit Temperaturangaben anlegen als Variablentyp Logikwert  ( wahr = an  / falsch = aus
!**************************************************************

string  url = "http://admin:admin@192.168.178.95/schematic_files/2.cgi";
integer von = 0;  !erste div id pos nr
integer bis = 29; !letzte div id pos nr
integer ix;
string  stdout;
string  stderr;
string  suche = '<div id="pos';
string  such2 = '</div>';
string  index;
string  wert;
string  sysvar;
real    sv_value;

system.Exec("wget --no-check-certificate -q -O - '" # url # "'", &stdout, &stderr);
if (stdout.Length() == 0)
{
    WriteLine("keine Daten empfangen");
    if (stderr.Length() > 0)
    {
        WriteLine("Fehlermeldung vom Server: " # stderr);
    }
    quit;
}

stdout = stdout.ToLatin();
stdout = stdout.Replace("\n", "");  ! Zeilenumbrüche entfernen
stdout = stdout.Replace("\r", "");  ! da sonst auch im VariablenName bzw VariablenWert 
stdout = stdout.Replace(" °C", ""); ! Masseinheit entfernen
stdout = stdout.Replace("Auto/AUS" , "0");
stdout = stdout.Replace("Auto/EIN" , "1");
stdout = stdout.Replace("Auto" , "0");
stdout = stdout.Replace("OFF" , "0");
stdout = stdout.Replace("ON" , "1");
stdout = stdout.Replace("AUS" , "0");
stdout = stdout.Replace("EIN" , "1");


! Variablen und Werte für die ersten 29 ids   und   34-45
integer loop = 0;

while (loop < 2)
{
    foreach(index, system.GenerateEnum(von, bis))
    {
        var such1 = suche # index;
        wert = stdout.Substr(stdout.Find(such1) + such1.Length()).Substr(0, (stdout.Substr(stdout.Find(such1) + such1.Length()).Find(such2)));
        wert = wert.Substr(wert.Find(">") + 1);
        ix = index.ToInteger() % 2;
        if (ix == 0)
        {
            sysvar = wert.Replace(" ", "");
        }
        else
        {
            sv_value = wert.ToFloat();
            object svdp = dom.GetObject(ID_SYSTEM_VARIABLES).Get(sysvar);
            if (svdp)
            {
                svdp.State(sv_value);
            }
        }
    }
    loop = loop + 1;
    von = 34;
    bis = 45;
}


!ausserhalb der anderen Logik
! das id pos - Paar getrennt durch "[" , Paare durch ";" getrennt
string sucharr = "30[32;31[33;46[48;47[49";

foreach(index, sucharr.Split(";"))
{
    var such1 = suche # index.StrValueByIndex("[", 0);
    wert = stdout.Substr(stdout.Find(such1) + such1.Length()).Substr(0, (stdout.Substr(stdout.Find(such1) + such1.Length()).Find(such2)));
    wert = wert.Substr(wert.Find(">") + 1);
    sysvar = wert.Replace(" ", "");

    var such1 = suche # index.StrValueByIndex("[", 1);
    wert = stdout.Substr(stdout.Find(such1) + such1.Length()).Substr(0, (stdout.Substr(stdout.Find(such1) + such1.Length()).Find(such2)));
    wert = wert.Substr(wert.Find(">") + 1);
    sv_value = wert.ToFloat();
    object svdp = dom.GetObject(ID_SYSTEM_VARIABLES).Get(sysvar);
    if (svdp)
    {
        svdp.State(sv_value);
    }

}
Danke auch noch mal an massel für die Unterstützung.
Gruß
Harry

massel
Beiträge: 15
Registriert: 14.11.2021, 11:51
System: CCU
Hat sich bedankt: 1 Mal

Re: TCL(?)-Script erstellung, Heizungsdaten auslesen

Beitrag von massel » 12.12.2021, 23:18

Danke Harry!
Das Skript ist super und schickt mir jetzt sehr zuverlässig die Daten der Heizung alle 5 Minuten auf die Homematic. TOP!!!

ChrisL
Beiträge: 344
Registriert: 25.05.2011, 08:31

Re: TCL(?)-Script erstellung, Heizungsdaten auslesen

Beitrag von ChrisL » 25.11.2023, 08:35

Guten Morgen zusammen,

ich muss diesen Beitrag nochmals aufwärmen.
Erst einmal vielen Dank für euren Einsatz und dieses Script! Ich habe ebenfalls eine UVR16x2 mit einer CMI an der Heizung. Irgendetwas scheint in der Programmierung aber anders zu sein und ich bekomme das Script nicht angepasst.

1. Bei mir muss wohl 1.cgi aufgerufen werden, da in 2.cgi nichts Sinnvolles drin steht.
Hier der Output von 1.cgi:

Code: Alles auswählen

3.1 °C
43.8 °C
Zuluft-Klappe öffnen (Ein) Zuluft-Klappe öffnet 1 Std
Rauchgas Warnung Pieper Aus
Pumpe VL: Ist
OFF
SolarVentil
SolarPumpe
OFF
0.0 %
50.7 °C
44.7 °C
59.8 °C
Zirkulation RL
-0.5 °C
25.4 °C
Zuluftklappe OFF
68.4 °C
OFF
Mischer Soll
51.9 °C
ON
OFF
0.00 kW
OFF
Pumpe
ON
OFF
35.6 °C
38.2 °C
Wenn ich das erste Script aufrufe kommt folgendes dabei raus:

Code: Alles auswählen

<div id="pos0" >
3.1 °C</div>
<div id="pos1" >
42.3 °C</div>
<div id="pos2" class="bord taster
visible0" adresse="0100004414B100" changefrom="
AUS">
<span class="v0"><span class="cent">
Zuluft-Klappe öffnen (Ein)
</span></span>
<span class="v1"><span class="cent">
Zuluft-Klappe öffnet 1 Std
</span></span>
</div>
<div id="pos3" class="bord taster
visible0" adresse="0100014414B100" changefrom="
AUS">
<span class="v0"><span class="cent">
Rauchgas Warnung
</span></span>
<span class="v1"><span class="cent">
Pieper Aus
</span></span>
</div>
<div id="pos4" >
Pumpe  VL: Ist
</div>
<div id="pos5" >
OFF</div>
<div id="pos6" >
SolarVentil
</div>
<div id="pos7" >
SolarPumpe
</div>
<div id="pos8" >
OFF</div>
<div id="pos9" class="changex2" adresse="10E40D10187">
0.0 %</div>
<div id="pos10" >
50.0 °C</div>
<div id="pos11" >
43.9 °C</div>
<div id="pos12" >
46.3 °C</div>
<div id="pos13" >
Zirkulation RL
</div>
<div id="pos14" >
-0.2 °C</div>
<div id="pos15" >
25.4 °C</div>
<div id="pos16" >
Zuluftklappe 
OFF</div>
<div id="pos17" >
</div>
<div id="pos18" >
68.3 °C</div>
<div id="pos19" >
OFF</div>
<div id="pos20" >
Mischer Soll
</div>
<div id="pos21" >
51.8 °C</div>
<div id="pos22" >
ON</div>
<div id="pos23" >
OFF</div>
<div id="pos24" >
0.00 kW</div>
<div id="pos25" >
OFF</div>
<div id="pos26" >
Pumpe
</div>
<div id="pos27" >
ON</div>
<div id="pos28" >
OFF</div>
<div id="pos29" >
35.5 °C</div>
<div id="pos30" >
39.7 °C</div>
<div id="pos31" class="durchsichtig" onClick="location.href='schema.html#2'">
</div>
<div id="pos32" class="durchsichtig" onClick="location.href='schema.html#4'">
</div>
<div id="pos33" class="durchsichtig" onClick="location.href='schema.html#5'">
</div>
<div id="pos34" class="durchsichtig" onClick="location.href='schema.html#6'">
</div>
<div id="pos35" class="durchsichtig" onClick="location.href='schema.html#10'">
</div>

Element: <div id="pos0
VariablenName: 3.1
Element: <div id="pos1
VariablenWert: 42.300000
Variable: 3.1 nicht angelegt für Wert 42.300000
Element: <div id="pos2
VariablenName: <spanclass="v0"><spanclass="cent">Zuluft-Klappeöffnen(Ein)</span></span><spanclass="v1"><spanclass="cent">Zuluft-Klappeöffnet1Std</span></span>
Element: <div id="pos3
VariablenWert: 0.000000
Variable: <spanclass="v0"><spanclass="cent">Zuluft-Klappeöffnen(Ein)</span></span><spanclass="v1"><spanclass="cent">Zuluft-Klappeöffnet1Std</span></span> nicht angelegt für Wert 0.000000
Element: <div id="pos4
VariablenName: PumpeVL:Ist
Element: <div id="pos5
VariablenWert: 0.000000
Variable: PumpeVL:Ist nicht angelegt für Wert 0.000000
Element: <div id="pos6
VariablenName: SolarVentil
Element: <div id="pos7
VariablenWert: 0.000000
Variable: SolarVentil nicht angelegt für Wert 0.000000
Element: <div id="pos8
VariablenName: 0
Element: <div id="pos9
VariablenWert: 0.000000
Variable: 0 nicht angelegt für Wert 0.000000
Element: <div id="pos10
VariablenName: 50.0
Element: <div id="pos11
VariablenWert: 43.900000
Variable: 50.0 nicht angelegt für Wert 43.900000
Element: <div id="pos12
VariablenName: 46.3
Element: <div id="pos13
VariablenWert: 0.000000
Variable: 46.3 nicht angelegt für Wert 0.000000
Element: <div id="pos14
VariablenName: -0.2
Element: <div id="pos15
VariablenWert: 25.400000
Variable: -0.2 nicht angelegt für Wert 25.400000
Element: <div id="pos16
VariablenName: Zuluftklappe0
Element: <div id="pos17
VariablenWert: 0.000000
Variable: Zuluftklappe0 nicht angelegt für Wert 0.000000
Element: <div id="pos18
VariablenName: 68.3
Element: <div id="pos19
VariablenWert: 0.000000
Variable: 68.3 nicht angelegt für Wert 0.000000
Element: <div id="pos20
VariablenName: MischerSoll
Element: <div id="pos21
VariablenWert: 51.800000
Variable: MischerSoll nicht angelegt für Wert 51.800000
Element: <div id="pos22
VariablenName: 1
Element: <div id="pos23
VariablenWert: 0.000000
Variable: 1 nicht angelegt für Wert 0.000000
Element: <div id="pos24
VariablenName: 0.00kW
Element: <div id="pos25
VariablenWert: 0.000000
Variable: 0.00kW nicht angelegt für Wert 0.000000
Element: <div id="pos26
VariablenName: Pumpe
Element: <div id="pos27
VariablenWert: 1.000000
Variable: Pumpe nicht angelegt für Wert 1.000000
Element: <div id="pos28
VariablenName: 0
Element: <div id="pos29
VariablenWert: 35.500000
Variable: 0 nicht angelegt für Wert 35.500000
Element: <div id="pos34
VariablenName: 
Element: <div id="pos35
VariablenWert: 0.000000
Variable:  nicht angelegt für Wert 0.000000
Element: <div id="pos36
VariablenName: 3.1
Element: <div id="pos37
VariablenWert: 3.100000
Variable: 3.1 nicht angelegt für Wert 3.100000
Element: <div id="pos38
VariablenName: 3.1
Element: <div id="pos39
VariablenWert: 3.100000
Variable: 3.1 nicht angelegt für Wert 3.100000
Element: <div id="pos40
VariablenName: 3.1
Element: <div id="pos41
VariablenWert: 3.100000
Variable: 3.1 nicht angelegt für Wert 3.100000
Element: <div id="pos42
VariablenName: 3.1
Element: <div id="pos43
VariablenWert: 3.100000
Variable: 3.1 nicht angelegt für Wert 3.100000
Element: <div id="pos44
VariablenName: 3.1
Element: <div id="pos45
VariablenWert: 3.100000
Variable: 3.1 nicht angelegt für Wert 3.100000
Variable: 39.7 nicht angelegt für Wert 0.000000
Variable:  nicht angelegt für Wert 0.000000
Variable: 3.1 nicht angelegt für Wert 3.100000
Variable: 3.1 nicht angelegt für Wert 3.100000
Leider kann das zweite Script damit nicht wirklich was anfangen.

Habt ihr eventuell Zeit und Lust mir hier zu helfen? Ich bin in Sachen Programmierung leider ein absoluter Noob.

Danke schon einmal.

Viele Grüße
Chris

Tyfys
Beiträge: 531
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 26 Mal
Danksagung erhalten: 121 Mal

Re: TCL(?)-Script erstellung, Heizungsdaten auslesen

Beitrag von Tyfys » 25.11.2023, 11:03

Hallo Chris.

Vorweg - ich habe so eine Heizungsanlage nicht.
Daher kann ich zu den verschiedenen cgi - Ausgabedaten nichts sagen, ob die 1.cgi oder 2.cgi dir die gewünschten Daten liefern kann.

Ich hatte nur die empfangenen Daten verarbeitet und in Systemvariablen ausgegeben, dass diese dann anderweitig von der CCU
verwendet werden können.

Lass doch einmal dieses Skript im Testfenster ausführen für 1.cgi und einmal für 2.cgi.
Du musst natürlich natürlich IP-Adresse und Anmeldedaten entsprechen ändern.

Code: Alles auswählen

string  url = "http://admin:admin@192.168.178.95/schematic_files/2.cgi";
string  stdout;
string  stderr;
system.Exec("wget --no-check-certificate -q -O - '" # url # "'", &stdout, &stderr);
if (stdout.Length() == 0)
{
    WriteLine("keine Daten empfangen");
    if (stderr.Length() > 0)
    {
        WriteLine("Fehlermeldung vom Server: " # stderr);
    }
    quit;
}
else
{
    WriteLine(stdout);
}
Anschliessend das Ergebnis aus dem Ausgabefenster jeweils in code-tags hier reinstellen.

Evtl. kannst du auch schon erkenn, welche der Ausgaben die für dich wichtigen Daten enthält.

Denn die Ausgabedaten für 1 und 2 -cgi können natürlich unterschiedlich
sein. Ebenso kann z.B. ein anderer Software-Stand für abweichende Datenformatierung verantwortlich sein.
Das können die Skripte dann nicht sinnvoll verarbeiten.

Anhand der Ausgabedaten kann man(ich) dann erkennen, ob die Skripte angepasst werden können.
Gruß
Harry

ChrisL
Beiträge: 344
Registriert: 25.05.2011, 08:31

Re: TCL(?)-Script erstellung, Heizungsdaten auslesen

Beitrag von ChrisL » 25.11.2023, 11:51

Hallo Harry,

erst einmal vielen Dank, dass du dich meiner annimmst. :-)

Hier die Ausgabe für 1.cgi

Code: Alles auswählen

<div id="pos0" >
4.2 °C</div>
<div id="pos1" >
33.7 °C</div>
<div id="pos2" class="bord taster
visible0" adresse="0100004414B100" changefrom="
AUS">
<span class="v0"><span class="cent">
Zuluft-Klappe öffnen (Ein)
</span></span>
<span class="v1"><span class="cent">
Zuluft-Klappe öffnet 1 Std
</span></span>
</div>
<div id="pos3" class="bord taster
visible0" adresse="0100014414B100" changefrom="
AUS">
<span class="v0"><span class="cent">
Rauchgas Warnung
</span></span>
<span class="v1"><span class="cent">
Pieper Aus
</span></span>
</div>
<div id="pos4" >
Pumpe  VL: Ist
</div>
<div id="pos5" >
ON</div>
<div id="pos6" >
SolarVentil
</div>
<div id="pos7" >
SolarPumpe
</div>
<div id="pos8" >
ON</div>
<div id="pos9" class="changex2" adresse="10E40D10187">
19.6 %</div>
<div id="pos10" >
42.9 °C</div>
<div id="pos11" >
38.4 °C</div>
<div id="pos12" >
39.1 °C</div>
<div id="pos13" >
Zirkulation RL
</div>
<div id="pos14" >
58.1 °C</div>
<div id="pos15" >
31.9 °C</div>
<div id="pos16" >
Zuluftklappe 
OFF</div>
<div id="pos17" >
</div>
<div id="pos18" >
66.1 °C</div>
<div id="pos19" >
OPEN</div>
<div id="pos20" >
Mischer Soll
</div>
<div id="pos21" >
50.7 °C</div>
<div id="pos22" >
ON</div>
<div id="pos23" >
OFF</div>
<div id="pos24" >
1.63 kW</div>
<div id="pos25" >
OFF</div>
<div id="pos26" >
Pumpe
</div>
<div id="pos27" >
ON</div>
<div id="pos28" >
OFF</div>
<div id="pos29" >
35.1 °C</div>
<div id="pos30" >
31.9 °C</div>
<div id="pos31" class="durchsichtig" onClick="location.href='schema.html#2'">
</div>
<div id="pos32" class="durchsichtig" onClick="location.href='schema.html#4'">
</div>
<div id="pos33" class="durchsichtig" onClick="location.href='schema.html#5'">
</div>
<div id="pos34" class="durchsichtig" onClick="location.href='schema.html#6'">
</div>
<div id="pos35" class="durchsichtig" onClick="location.href='schema.html#10'">
</div>

und hier die Ausgabe für 2.cgi:

Code: Alles auswählen

<div id="pos0" >
Einstellungen Heizkreis 1
</div>
<div id="pos1" >
Zeitprogramm 1 Einstellungen
</div>
<div id="pos2" >
Heizkurve 1
</div>
<div id="pos3" class="durchsichtig" onClick="location.href='schema.html#3'">
</div>
<div id="pos4" class="durchsichtig" onClick="location.href='schema.html#7'">
</div>
<div id="pos5" class="durchsichtig" onClick="location.href='schema.html#8'">
</div>
Die wichtigen Werte sind in 1.cgi. Die Zuordnung der Werte könnte ich per Hand machen, also ich weiß welcher Wert zu welchem Wert in der CMI gehört.

Viele Grüße
Chris

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“