Ankündigung

Einklappen
Keine Ankündigung bisher.

[alpha] Logik UVR1611

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [Codebeispiel] [alpha] Logik UVR1611

    Hallo,

    hier ist nun die allererste Version meines Plugin für die UVR1611.

    Konfiguriert wird das Plugin über die XML-Datei des TA-Designers.
    Kurzanleitung:
    Vorbereitung BL-NET
    -TA-Designer installieren
    -Dat-Datei aus TAPPS importieren
    -Per Drag&Drop die Größen, die ihr in sh.py haben wollt in die Zeichnungsfläche ziehen.
    -Speichern
    -*.html aus dem Verzeichnis "Schema" per Memory-Manager an BL-Net übertragen.

    Items Konfigurieren
    smarthome/items/uvr.conf:
    Code:
    [UVR]
        Bootloader_url = http://192.168.177.5/GRAFIK1.html
        config=/usr/local/smarthome/items/MeinProjekt.xml
        [[Kollektortemp]]
            type = num
            UVRstring = T.Kollektor Wert
            sqlite = true
        [[Aussentemp]]
            type = num
            UVRstring = T.Aussen Wert
            sqlite = true
    Die verfügbaren UVRstrings findet ihr in der xml oder im debug-log.

    Aber wie gesagt: alles noch alpha! Freiwillige voraus!

    Gruß,
    Hendrik
    Angehängte Dateien

    #2
    Hi,

    Hab die Logik gerade erfolgreich zum laufen gebracht auf meinem Raspberry.
    Nur den import eintrag für den pydevd Debugger musste ich entfernen, denn da meckerte er, dass er das Modul nicht finden kann.

    Hab mal auf die schnelle ein paar Temperaturen eingefügt und die abfrage gestartet. Wird sofort alles erkannt und aufgefüllt.

    Läuft schon recht gut, auch ein mehrmaliges abrufen hintereinander bringt den Bootloader nicht durcheinander.

    Gruß, Mike

    UVR.conf
    Code:
    [UVR]
      Bootloader_url = http://192.168.0.239/GRAFIK1.html
      config=/usr/smarthome/items/Heizung.xml
      [[Kollektortemp]]
        type=num
        UVRstring='T.Kollektor  Wert'
      [[Aussentemp]]
        type=num
        UVRstring='Temp.Aussen  Wert'
      [[Warmwasser]]
        type=num
        UVRstring='T.Warmwasser'
      [[Solarspeicher]]
        type=num
        UVRstring='T.Speicher'
    html:
    Code:
                </table>
                        <h3>aktuelle Temperaturen</h3>
                <table width="100%" style="text-align: left;">
                <tr>
                    <td width="25%">Kollektor:</td>
                    <td width="20%">{{ basic.formula('uvr1', ['UVR.Kollektortemp'], '°') }}</td>
                    <td width="25%">Aussentemp.:</td>
                    <td width="20%">{{ basic.formula('uvr2', ['UVR.Aussentemp'], '°') }}</td>
                </tr>
                <tr>
                    <td width="25%">Warmwasser:</td>
                    <td width="20%">{{ basic.formula('uvr3', ['UVR.Warmwasser'], '°') }}</td>
                    <td width="25%">Solarspeicher:</td>
                    <td width="20%">{{ basic.formula('uvr4', ['UVR.Solarspeicher'], '°') }}</td>
                </tr>
    logfile:
    Code:
    2014-05-08 19:01:35,848 DEBUG    Main         Triggering uvr - by: Item source: logikitem.eins dest: None value: True -- scheduler.py:trigger:162
    2014-05-08 19:01:35,964 INFO     uvr          [UVR] Available Strings -- uvr.py:<module>:74
    2014-05-08 19:01:35,969 DEBUG    uvr          ['T.Kollektor  Wert', 'T.SP.unten  Wert', 'T.SP.oben  Wert', 'T.Solar-RL  Wert', 'Temp.Aussen  Wert', 'Pumpe-Solar  Zustand (Ein/Aus)', 'Pumpe  Zustand (Ein/Aus)', 'T.Solar-VL 2', 'T.Solar-RL 2', 'T.Speicher', 'T.Warmwasser', 'T.Kessel-VL', 'T.Heizkr.VL', 'T.Heizkr.RL', 'T.Zirku.RL', 'Ström.Schalt', 'Pumpe-Hzkr Zustand (Ein/Aus)', 'Anf.Brenner Zustand (Ein/Aus)', 'Ladep.WW. Zustand (Ein/Aus)', 'Pumpe-Zirku Zustand (Ein/Aus)', 'Brennerstart  Zähler Stunden oder Impuls (je nach Modus)', 'Brennerstart  Anzeigewert Stunden Vortag ', 'MAX(An) Ergebnis', 'HZ_ANF. Freigabe Anf. Heizung', 'Wettervorher  Zustand (Ein/Aus)', 'Pumpe-Solar Drehzahlstufe', 'Ladep.WW. Drehzahlstufe', 'WW_ANF. 2 Solltemperatur', 'BETRSTDZ. 3 Zähler Minuten', 'BETRSTDZ. 3 Zähler Stunden oder Impuls (je nach Modus)', 'BETRSTDZ. 3 Anzeigewert Stunden Vortag ', 'BETRSTDZ. 3 Anzeigewert Minuten Vortag ', 'WW-Temp.      5 Blockadezeit Tage'] -- uvr.py:<module>:75
    2014-05-08 19:01:38,891 DEBUG    uvr          [UVR] b'<!--2.0-->\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml">\n<head>\n<meta http-equiv="content-type" content="text/html;charset=utf-8" />\n<style type="text/css">\n  body {font-size: 14px; font-family: Verdana, Arial, Helvetica, sans-serif; background-repeat: no-repeat; background-color: transparent; background: transparent; margin: 0px; padding: 0px;}\n  #frame {text-align: left; vertical-align: top; position: relative; margin-left: 0;}\n\n/*########## CSS-ID: Positionen und Darstellung der Anzeigeparameter ##########*/\n#pos0{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:72px; left:250px; }\n#pos1{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:431px; left:335px; }\n#pos2{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:369px; left:335px; }\n#pos3{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:410px; left:116px; }\n#pos4{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:39px; left:56px; }\n#pos5{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,128,0); font-style: normal; font-weight: bold; text-align: left; top:331px; left:135px; }\n#pos6{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,128,0); font-style: normal; font-weight: bold; text-align: left; top:350px; left:424px; }\n#pos7{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:294px; left:382px; }\n#pos8{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:497px; left:381px; }\n#pos9{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:364px; left:550px; }\n#pos10{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:126px; left:593px; }\n#pos11{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:477px; left:550px; }\n#pos12{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:153px; left:782px; }\n#pos13{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:433px; left:824px; }\n#pos14{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:223px; left:693px; }\n#pos15{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,0,255); font-style: normal; font-weight: bold; text-align: left; top:211px; left:601px; }\n#pos16{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,128,0); font-style: normal; font-weight: bold; text-align: left; top:314px; left:807px; }\n#pos17{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,128,0); font-style: normal; font-weight: bold; text-align: left; top:477px; left:660px; }\n#pos18{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,128,0); font-style: normal; font-weight: bold; text-align: left; top:330px; left:667px; }\n#pos19{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(0,128,0); font-style: normal; font-weight: bold; text-align: left; top:172px; left:708px; }\n#pos20{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:564px; left:675px; }\n#pos21{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:602px; left:675px; }\n#pos22{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:603px; left:236px; }\n#pos23{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:563px; left:307px; }\n#pos24{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:104px; left:905px; }\n#pos25{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:302px; left:131px; }\n#pos26{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:308px; left:668px; }\n#pos27{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:17px; left:564px; }\n#pos28{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:565px; left:604px; }\n#pos29{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:565px; left:546px; }\n#pos30{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:601px; left:545px; }\n#pos31{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:601px; left:603px; }\n#pos32{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:564px; left:836px; }\n#pos33{position:absolute; font-family: Calibri; font-size: 20pt; color: rgb(255,0,0); font-style: normal; font-weight: bold; text-align: left; top:46px; left:902px; }\n</style>\n<script type="text/javascript">\n<!--\n var Title ="Onlineschema";  // Titeltext im Browserfenster\n var GraphicFile = "GRAFIK.gif";  // Pfad der Grafikdatei\n var Width = "1024px";\n var Height = "678px";\n \n//### Intervallzeit [in Sekunden] fr eine automatische Aktualisierung der Messwerte: ###\n//### < "30" = keine automatische Aktualisierung ###\n//--------------------------------------------------\n var AutoRefreshTime = "0";\n\n//### Linktext f\xc3\xbcr manuelle Aktualisierung der Messwerte: ###\n//### "" = kein Link f\xc3\xbcr manuelle Aktualisierung ###\n//--------------------------------------------------\n var RefreshLink ="";\n \n function set_dimenson_para (){\n document.getElementById("frame").style.width = Width;\n document.getElementById("frame").style.hight = Height;\n }\n -->\n</script>\n \n </head>\n <body onload="set_dimenson_para ()">\n <div id="frame">\n <!--########## Definitionen der Anzeigeparameter ##########-->\n<div id="pos0">&nbsp;42,6 &deg;C </div>\n<div id="pos1">&nbsp;49,7 &deg;C </div>\n<div id="pos2">&nbsp;53,2 &deg;C </div>\n<div id="pos3">&nbsp;37,0 &deg;C </div>\n<div id="pos4">&nbsp;17,7 &deg;C </div>\n<div id="pos5">AUS</div>\n<div id="pos6">AUS</div>\n<div id="pos7">&nbsp;48,2 &deg;C </div>\n<div id="pos8">&nbsp;41,7 &deg;C </div>\n<div id="pos9">&nbsp;44,1 &deg;C </div>\n<div id="pos10">&nbsp;38,8 &deg;C </div>\n<div id="pos11">&nbsp;49,7 &deg;C </div>\n<div id="pos12">&nbsp;46,6 &deg;C </div>\n<div id="pos13">&nbsp;26,4 &deg;C </div>\n<div id="pos14">&nbsp;34,0 &deg;C </div>\n<div id="pos15">&nbsp;AUS</div>\n<div id="pos16">AUS</div>\n<div id="pos17">AUS</div>\n<div id="pos18">AUS</div>\n<div id="pos19">AUS</div>\n<div id="pos20">&nbsp;&nbsp;&nbsp;&nbsp;3</div>\n<div id="pos21">&nbsp;&nbsp;&nbsp;&nbsp;1</div>\n<div id="pos22">&nbsp;47,0 &deg;C </div>\n<div id="pos23">AUS</div>\n<div id="pos24">AUS</div>\n<div id="pos25">&nbsp;0</div>\n<div id="pos26">&nbsp;0</div>\n<div id="pos27">&nbsp;47,0 &deg;C </div>\n<div id="pos28">27</div>\n<div id="pos29">&nbsp;&nbsp;&nbsp;&nbsp;0 /</div>\n<div id="pos30">&nbsp;&nbsp;&nbsp;&nbsp;0 /</div>\n<div id="pos31">10</div>\n<div id="pos32">&nbsp;&nbsp;7 Tage</div>\n<div id="pos33">AUS</div>\n</div>\n</body>\n</html>' -- uvr.py:<module>:98
    2014-05-08 19:01:38,905 DEBUG    uvr          no div -- uvr.py:handle_starttag:30
    2014-05-08 19:01:38,910 DEBUG    uvr          no div -- uvr.py:handle_starttag:30
    2014-05-08 19:01:38,916 DEBUG    uvr          no div -- uvr.py:handle_starttag:30
    2014-05-08 19:01:38,921 DEBUG    uvr          no div -- uvr.py:handle_starttag:30
    2014-05-08 19:01:38,929 DEBUG    uvr          no div -- uvr.py:handle_starttag:30
    2014-05-08 19:01:38,935 DEBUG    uvr          no div -- uvr.py:handle_starttag:30
    2014-05-08 19:01:38,941 DEBUG    uvr          div with data\n  -- uvr.py:handle_data:40
    2014-05-08 19:01:38,946 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:38,952 DEBUG    uvr          div with data42,6  -- uvr.py:handle_data:40
    2014-05-08 19:01:38,956 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:38,961 DEBUG    uvr          closing tag and saving 42.6 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:38,966 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:38,972 DEBUG    uvr          div with data49,7  -- uvr.py:handle_data:40
    2014-05-08 19:01:38,978 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:38,983 DEBUG    uvr          closing tag and saving 49.7 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:38,988 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:38,994 DEBUG    uvr          div with data53,2  -- uvr.py:handle_data:40
    2014-05-08 19:01:38,999 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,004 DEBUG    uvr          closing tag and saving 53.2 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,009 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,015 DEBUG    uvr          div with data37,0  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,020 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,024 DEBUG    uvr          closing tag and saving 37.0 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,029 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,035 DEBUG    uvr          div with data17,7  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,040 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,045 DEBUG    uvr          closing tag and saving 17.7 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,050 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,056 DEBUG    uvr          div with dataAUS -- uvr.py:handle_data:40
    2014-05-08 19:01:39,061 DEBUG    uvr          closing tag and saving 0 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,066 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,071 DEBUG    uvr          div with dataAUS -- uvr.py:handle_data:40
    2014-05-08 19:01:39,076 DEBUG    uvr          closing tag and saving 0 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,081 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,087 DEBUG    uvr          div with data48,2  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,092 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,097 DEBUG    uvr          closing tag and saving 48.2 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,102 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,108 DEBUG    uvr          div with data41,7  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,112 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,117 DEBUG    uvr          closing tag and saving 41.7 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,122 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,128 DEBUG    uvr          div with data44,1  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,134 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,139 DEBUG    uvr          closing tag and saving 44.1 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,144 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,150 DEBUG    uvr          div with data38,8  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,155 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,159 DEBUG    uvr          closing tag and saving 38.8 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,168 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,174 DEBUG    uvr          div with data49,7  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,179 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,184 DEBUG    uvr          closing tag and saving 49.7 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,189 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,195 DEBUG    uvr          div with data46,6  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,200 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,205 DEBUG    uvr          closing tag and saving 46.6 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,210 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,216 DEBUG    uvr          div with data26,4  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,220 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,225 DEBUG    uvr          closing tag and saving 26.4 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,231 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,236 DEBUG    uvr          div with data34,0  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,241 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,246 DEBUG    uvr          closing tag and saving 34.0 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,251 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,257 DEBUG    uvr          div with dataAUS -- uvr.py:handle_data:40
    2014-05-08 19:01:39,262 DEBUG    uvr          closing tag and saving 0 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,267 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,273 DEBUG    uvr          div with dataAUS -- uvr.py:handle_data:40
    2014-05-08 19:01:39,278 DEBUG    uvr          closing tag and saving 0 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,283 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,288 DEBUG    uvr          div with dataAUS -- uvr.py:handle_data:40
    2014-05-08 19:01:39,293 DEBUG    uvr          closing tag and saving 0 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,298 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,304 DEBUG    uvr          div with dataAUS -- uvr.py:handle_data:40
    2014-05-08 19:01:39,309 DEBUG    uvr          closing tag and saving 0 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,314 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,319 DEBUG    uvr          div with dataAUS -- uvr.py:handle_data:40
    2014-05-08 19:01:39,324 DEBUG    uvr          closing tag and saving 0 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,329 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,336 DEBUG    uvr          div with data3 -- uvr.py:handle_data:40
    2014-05-08 19:01:39,341 DEBUG    uvr          closing tag and saving 3 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,346 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,352 DEBUG    uvr          div with data1 -- uvr.py:handle_data:40
    2014-05-08 19:01:39,357 DEBUG    uvr          closing tag and saving 1 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,362 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,368 DEBUG    uvr          div with data47,0  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,373 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,378 DEBUG    uvr          closing tag and saving 47.0 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,383 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,388 DEBUG    uvr          div with dataAUS -- uvr.py:handle_data:40
    2014-05-08 19:01:39,393 DEBUG    uvr          closing tag and saving 0 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,398 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,404 DEBUG    uvr          div with dataAUS -- uvr.py:handle_data:40
    2014-05-08 19:01:39,409 DEBUG    uvr          closing tag and saving 0 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,414 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,419 DEBUG    uvr          div with data0 -- uvr.py:handle_data:40
    2014-05-08 19:01:39,424 DEBUG    uvr          closing tag and saving 0 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,429 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,435 DEBUG    uvr          div with data0 -- uvr.py:handle_data:40
    2014-05-08 19:01:39,440 DEBUG    uvr          closing tag and saving 0 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,445 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,451 DEBUG    uvr          div with data47,0  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,456 DEBUG    uvr          div with dataC  -- uvr.py:handle_data:40
    2014-05-08 19:01:39,462 DEBUG    uvr          closing tag and saving 47.0 C  -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,467 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,472 DEBUG    uvr          div with data27 -- uvr.py:handle_data:40
    2014-05-08 19:01:39,477 DEBUG    uvr          closing tag and saving 27 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,482 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,489 DEBUG    uvr          div with data0 / -- uvr.py:handle_data:40
    2014-05-08 19:01:39,494 DEBUG    uvr          closing tag and saving 0 / -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,499 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,505 DEBUG    uvr          div with data0 / -- uvr.py:handle_data:40
    2014-05-08 19:01:39,511 DEBUG    uvr          closing tag and saving 0 / -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,516 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,521 DEBUG    uvr          div with data10 -- uvr.py:handle_data:40
    2014-05-08 19:01:39,526 DEBUG    uvr          closing tag and saving 10 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,531 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,537 DEBUG    uvr          div with data7 Tage -- uvr.py:handle_data:40
    2014-05-08 19:01:39,542 DEBUG    uvr          closing tag and saving 7 Tage -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,547 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,553 DEBUG    uvr          div with dataAUS -- uvr.py:handle_data:40
    2014-05-08 19:01:39,557 DEBUG    uvr          closing tag and saving 0 -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,563 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,567 DEBUG    uvr          closing tag and saving 0\n -- uvr.py:handle_endtag:48
    2014-05-08 19:01:39,573 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,578 DEBUG    uvr          div with data\n -- uvr.py:handle_data:40
    2014-05-08 19:01:39,582 DEBUG    uvr          div with data' -- uvr.py:handle_data:40
    2014-05-08 19:01:39,587 DEBUG    uvr          [UVR] id_conf[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32] -- uvr.py:<module>:119
    2014-05-08 19:01:39,593 DEBUG    uvr          [UVR] beschreibung['T.Kollektor  Wert', 'T.SP.unten  Wert', 'T.SP.oben  Wert', 'T.Solar-RL  Wert', 'Temp.Aussen  Wert', 'Pumpe-Solar  Zustand (Ein/Aus)', 'Pumpe  Zustand (Ein/Aus)', 'T.Solar-VL 2', 'T.Solar-RL 2', 'T.Speicher', 'T.Warmwasser', 'T.Kessel-VL', 'T.Heizkr.VL', 'T.Heizkr.RL', 'T.Zirku.RL', 'Ström.Schalt', 'Pumpe-Hzkr Zustand (Ein/Aus)', 'Anf.Brenner Zustand (Ein/Aus)', 'Ladep.WW. Zustand (Ein/Aus)', 'Pumpe-Zirku Zustand (Ein/Aus)', 'Brennerstart  Zähler Stunden oder Impuls (je nach Modus)', 'Brennerstart  Anzeigewert Stunden Vortag ', 'MAX(An) Ergebnis', 'HZ_ANF. Freigabe Anf. Heizung', 'Wettervorher  Zustand (Ein/Aus)', 'Pumpe-Solar Drehzahlstufe', 'Ladep.WW. Drehzahlstufe', 'WW_ANF. 2 Solltemperatur', 'BETRSTDZ. 3 Zähler Minuten', 'BETRSTDZ. 3 Zähler Stunden oder Impuls (je nach Modus)', 'BETRSTDZ. 3 Anzeigewert Stunden Vortag ', 'BETRSTDZ. 3 Anzeigewert Minuten Vortag ', 'WW-Temp.      5 Blockadezeit Tage'] -- uvr.py:<module>:120
    2014-05-08 19:01:39,598 DEBUG    uvr          [UVR] id_res[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] -- uvr.py:<module>:121
    2014-05-08 19:01:39,603 DEBUG    uvr          [UVR] content['42.6', '49.7', '53.2', '37.0', '17.7', '0', '0', '48.2', '41.7', '44.1', '38.8', '49.7', '46.6', '26.4', '34.0', '0', '0', '0', '0', '0', '3', '1', '47.0', '0', '0', '0', '0', '47.0', '27', '0', '0', '10', '7', '0', '0'] -- uvr.py:<module>:122
    2014-05-08 19:01:39,608 DEBUG    uvr          [UVR] Behandle UVR -- uvr.py:<module>:126
    2014-05-08 19:01:39,612 DEBUG    uvr          [UVR] Behandle item UVR.Kollektortemp -- uvr.py:<module>:127
    2014-05-08 19:01:39,617 DEBUG    uvr          T.Kollektor  Wert -- uvr.py:<module>:130
    2014-05-08 19:01:39,621 DEBUG    uvr          [UVR] Suchstring|T.Kollektor  Wert| Gefunden wurde |T.Kollektor  Wert | Ergebnis|42.6 -- uvr.py:<module>:139
    2014-05-08 19:01:39,628 DEBUG    uvr          Item UVR.Kollektortemp = 42.6 via Logic None None -- item.py:__update:363
    2014-05-08 19:01:39,637 DEBUG    uvr          [UVR] Behandle UVR -- uvr.py:<module>:126
    2014-05-08 19:01:39,642 DEBUG    uvr          [UVR] Behandle item UVR.Aussentemp -- uvr.py:<module>:127
    2014-05-08 19:01:39,646 DEBUG    uvr          Temp.Aussen  Wert -- uvr.py:<module>:130
    2014-05-08 19:01:39,651 DEBUG    uvr          [UVR] Suchstring|Temp.Aussen  Wert| Gefunden wurde |Temp.Aussen  Wert | Ergebnis|17.7 -- uvr.py:<module>:139
    2014-05-08 19:01:39,656 DEBUG    uvr          [UVR] Behandle UVR -- uvr.py:<module>:126
    2014-05-08 19:01:39,660 DEBUG    uvr          [UVR] Behandle item UVR.Warmwasser -- uvr.py:<module>:127
    2014-05-08 19:01:39,665 DEBUG    uvr          T.Warmwasser -- uvr.py:<module>:130
    2014-05-08 19:01:39,674 DEBUG    uvr          [UVR] Suchstring|T.Warmwasser| Gefunden wurde |T.Warmwasser | Ergebnis|38.8 -- uvr.py:<module>:139
    2014-05-08 19:01:39,681 DEBUG    uvr          Item UVR.Warmwasser = 38.8 via Logic None None -- item.py:__update:363
    2014-05-08 19:01:39,689 DEBUG    uvr          [UVR] Behandle UVR -- uvr.py:<module>:126
    2014-05-08 19:01:39,694 DEBUG    uvr          [UVR] Behandle item UVR.Solarspeicher -- uvr.py:<module>:127
    2014-05-08 19:01:39,698 DEBUG    uvr          T.Speicher -- uvr.py:<module>:130
    2014-05-08 19:01:39,703 DEBUG    uvr          [UVR] Suchstring|T.Speicher| Gefunden wurde |T.Speicher | Ergebnis|44.1 -- uvr.py:<module>:139
    Angehängte Dateien

    Kommentar


      #3
      Klasse, das freut mich!

      Da bist du auch schon weiter als ich -in der Visu ist noch nix...

      Gruß,
      Hendrik

      Kommentar


        #4
        Und, gibt es weitere Erfahrungen?

        Kommentar


          #5
          Hi, von meiner Seite kann ich bisher nichts negatives berichten,
          Hab jetzt mal alle temperaturen und Ausgänge in eine Visu Seite integriert, und hol mir die Daten mit Cron im Minutentakt vom Bootloader.
          Läuft jetzt seit 4 Tagen ohne Probleme, hatte aber auch seitdem nichts mehr getestet, weil ich nur am Freitag mal für 2 Stunden zeit hatte.

          Aber, habs bisher als Logik laufen, nicht als Plugin, ist aber auch von dir so gedacht, oder ? Oder geht das auch als Plugin ? Wobei ich da jetzt nicht direkt vor oder nachteile sehe.
          Angehängte Dateien

          Kommentar


            #6
            Sieht klasse aus, deine Visu.
            Da habe ich nicht so das Händchen für..

            Zum Plugin/Logik:
            Ja, momentan ist es eine Logik. Ein Plugin hätte den Vorteil, dass es direkt mitgeliefert wird und dokumentiert ist (:-) Wahrscheinlich wäre es auch stabiler, da Marcus vorher genau hinschauen würde.

            Nachteil: Arbeit ;-)

            Kommentar


              #7
              cooles Ding, wahrscheinlich ne dämliche Frage: wo muss die uvr.xml hin? Ich habe sie in "\\SMARTHOME\SmartHome.py\items" gespeichert - ist das identisch mit "/usr/local/smarthome/items/". log liefert mir Fehlermeldung:
              PHP-Code:
              014-07-20 18:55:21 ERROR    uvr          LogicuvrFile: /usr/lib/python3.2/xml/etree/ElementTree.pyLine669MethodparseException: [Errno 2No such file or directory'/usr/local/smarthome/items/uvr.xml'
              Traceback (most recent call last):
                
              File "/usr/smarthome/lib/scheduler.py"line 339in _task
                  exec
              (obj.bytecode)
                
              File "/usr/smarthome/logics/uvr.py"line 64in <module>
                  
              tree=ET.parse(ta_designer_xml)
                
              File "/usr/lib/python3.2/xml/etree/ElementTree.py"line 1223in parse
                  tree
              .parse(sourceparser)
                
              File "/usr/lib/python3.2/xml/etree/ElementTree.py"line 669in parse
                  source 
              open(source"rb")
              IOError: [Errno 2No such file or directory'/usr/local/smarthome/items/uvr.xml' 

              Kommentar


                #8
                um meine Frage selbst zu beantworten, bei mir muss es "/usr/smarthome/items/" heißen.
                Dann mache ich mich mal ans umsetzen mit der Visu bis jetzt habe ich zwei Werte die brav alle 30 Sekunden aktualisiert werden - vielen Dank an den Entwickler!

                Kommentar


                  #9
                  Das freut mich!

                  Danke für die Rückmeldung.

                  Gruß,
                  Hendrik

                  Kommentar


                    #10
                    Hallo

                    ich möchte das Thema gern noch mal hochholen.

                    Leider er kann man die zip aus dem ersten Beitrag nicht mehr Downloaden.

                    Hat die bitte noch jemand?
                    vielleicht gibt es ja auch schon ein Plugin?

                    danke.

                    Kommentar


                      #11
                      Moin,

                      hier der Anhang.

                      Bzgl. deiner PN:
                      Nach dem Import ist die Seite weiss. Dann:
                      -Per Drag&Drop die Größen, die ihr in sh.py haben wollt in die Zeichnungsfläche ziehen.
                      -Speichern
                      -*.html aus dem Verzeichnis "Schema" per Memory-Manager an BL-Net übertragen.

                      Gruß,
                      Hendrik
                      Angehängte Dateien

                      Kommentar


                        #12
                        Also entweder bin ich tatsächlich zu blöd oder irgend etwas haut mit den Downloads nicht hin.
                        Wenn ich die Zip anklicke bekomme ich lediglich eine weiße Seite angezeigt.

                        Danke nochmal Hendrik für die erklärung ich hatte das mit der zeichnungsfläche hinbekommen, ich hatte irgendwie überlesen, das wenigstens eine weiße *.gif in den TA-Designer eingefügt werden muss, dann kann man auch die Werte rüberziehen.

                        Nun nur noch die Frage ob denn jemand seine UVR schon vollständig und hübsch in die smartVisu integriert hat, dann brauch ich das Rad ja nicht neu erfinden :-)

                        Dankeschön

                        Kommentar


                          #13
                          Bei mir geht es

                          Das ist der Inhalt der uvr.py

                          Code:
                          #!/usr/bin/python3.2
                          
                          #url="http://192.168.177.5/GRAFIK1.html"
                          verbose=1
                          url=sh.UVR.conf['Bootloader_url']
                          ta_designer_xml=sh.UVR.conf['config']
                          UVRitems=sh.UVR
                          
                          
                          #import pydevd
                          import re
                          import xml.etree.ElementTree as ET
                          from html.parser import HTMLParser
                          from urllib.request import urlopen
                          
                          
                          
                                 
                          
                          
                          
                          class MyHTMLParser(HTMLParser):
                              def __init__(self):
                                super().__init__()
                                #HTMLParser.__init__(self)
                                self.id = []
                                self.data = []
                                self.tag=None
                                self.temp=[]
                              def handle_starttag(self, tag, attrs):
                                if tag != 'div':
                                  logger.debug('no div')
                                  return   
                                self.tag=tag   
                                self.temp=[]      
                                for attr in attrs:
                                      v=attr[1].split('pos')
                                      if len(v)>1:
                                          self.id.append(int(v[1]))
                              def handle_data(self, data):
                                if self.tag=='div':
                                  logger.debug('div with data'+str(data))
                                  self.temp.append(data)
                              def handle_endtag(self, tag):
                                if tag == 'div':    
                                  s="".join(self.temp)
                                  s=s.replace(',','.')
                                  s=s.replace('AUS','0')
                                  s=s.replace('EIN','1')
                                  logger.debug('closing tag and saving ' + s)
                                  try:
                                      import re
                                      non_decimal = re.compile(r'[^\d.]+')
                                      w=non_decimal.sub('', s)
                                      if s.find('%')>0:
                                          w=w/100
                                  except:
                                      logger.warning('oh oh')    
                          
                                  self.data.append(w)  
                          
                          
                          
                          #read the configuration-----------------------------------------------------------------------------
                          tree=ET.parse(ta_designer_xml)
                          root = tree.getroot()
                          
                          beschreibung=[]
                          id_conf=[]
                             
                          for i in range(0,len(root.findall('./Seiten/Seite_0/Objekte/*'))-1):
                            beschreibung.append(root.findall('./Seiten/Seite_0/Objekte/Objekt_'+str(i))[-1].get('Bezeichnung').split(': ')[-1])
                            id_conf.append(i)
                          
                          if verbose:
                             logger.info('[UVR] Available Strings')
                             logger.debug(beschreibung)
                          
                          
                          
                                  # start not needed
                                  #subindex=hex(int(objekte.childNodes[i].getAttribute('can_subindex')))
                                  #cansubindex.append(subindex)
                                  #index=hex(int(objekte.childNodes[i].getAttribute('can_index')))
                                  #canindex.append(index)
                                  #knoten=hex(int(objekte.childNodes[i].getAttribute('can_knoten')))
                                  #canknoten.append(knoten)
                                  #prep=index.split('0x')[1].zfill(4)
                                  #prep1=prep[2:3]+prep[0:1]
                                  #hexstring='$X'+subindex+prep+knoten.split('0x')[1].zfill(2)
                          
                          
                             
                          #----------read the response-------------------------------
                          
                          html = str(sh.tools.fetch_url(url, timeout=10))
                          #response=urlopen(url)
                          #html=response.read() 
                          
                          logger.debug('[UVR] ' + str(html))
                          
                          parser = MyHTMLParser()
                          parser.feed(str(html))
                          
                          id_res=parser.id
                          content=parser.data
                            
                          
                          
                          #for i in range(0, len(id_res)-1):
                          #    id=id_res[i]
                          #    logger.debug beschreibung[id], content[id]
                          
                              
                              
                          
                          #-------------assign the results-------------------  
                          #we have four lists now:
                          #config: id_conf, beschreibung
                          #result: id_res, content  
                          logger.debug('[UVR] id_conf' +str(id_conf))    
                          logger.debug('[UVR] beschreibung' +str(beschreibung))
                          logger.debug('[UVR] id_res' +str(id_res))
                          logger.debug('[UVR] content' +str(content))
                          
                          
                          for item in UVRitems:
                           logger.debug('[UVR] Behandle UVR')
                           logger.debug('[UVR] Behandle item ' + str(item))
                           try:
                             s=item.conf['UVRstring']
                             logger.debug(s)
                             #--id_resition of appearance can be different in xml(configuration) and html (result)
                             #linked via id
                             #check, if string in configuration and find its id
                          #   pydevd.settrace("192.168.177.20") 
                             if s in beschreibung:
                               found=beschreibung.index(s)
                               curr_id_config=id_conf[found]
                               pos_in_result=id_res.index(curr_id_config)
                               result=content[pos_in_result]   
                               logger.debug('[UVR] Suchstring|' +s+'| Gefunden wurde |' + beschreibung[curr_id_config] +' | Ergebnis|' + result)       
                               if result!=-99999:
                                 item(result)
                             else:
                                 logger.debug('[UVR] Suchstring, nicht gefunden')
                           except KeyError:
                             logger.debug('xmlstring is empty or not existent')
                             pass
                          Mfg Micha
                          Ich sage ja nicht, das wir alle dummen Menschen loswerden müssen, aber könnten wir nicht einfach alle Warnhinweise entfernen und den Dingen ihren Lauf lassen?

                          Kommentar


                            #14
                            Hallo Vento,

                            danke fürs Posten inline.
                            Sorry, dass ich jetzt erst wieder hier rein schaue.
                            Bei mir funktioniert der Anhang auch nicht. Woran kann das liegen? Ich nutze Chrome.

                            Gruß,
                            Hendrik

                            Kommentar


                              #15
                              Ich nutze auch Chrome... vielleicht ist die Gesichtserkennung im Forum aktiviert

                              Nee, kann auch nicht sein, ich kann den Anhang ja laden.....
                              Mfg Micha
                              Ich sage ja nicht, das wir alle dummen Menschen loswerden müssen, aber könnten wir nicht einfach alle Warnhinweise entfernen und den Dingen ihren Lauf lassen?

                              Kommentar

                              Lädt...
                              X