Ankündigung

Einklappen
Keine Ankündigung bisher.

SVN-Editor auf Fremdhardware

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

  • henfri
    antwortet
    Hallo,

    ich hab es gerade nochmal getestet. Der Editor läuft bei mir weiterhin nicht:
    configuration could not be saved, server responded with 'parseerror' /'SyntaxError: Unexpected token '
    Aus dem Firebug:
    Code:
    message: "configuration-data could not be decoded"
    success: false
    Code:
    Request URL:http://homeserver/visu_svn/visu/editor/bin/save_config.php
    Request Method:POST
    Status Code:200 OK
    Request Headersview source
    Accept:application/json, text/javascript, */*; q=0.01
    Accept-Encoding:gzip,deflate,sdch
    Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
    Connection:keep-alive
    Content-Length:83208
    Content-Type:application/x-www-form-urlencoded; charset=UTF-8
    Cookie:Squeezebox-expandPlayerControl=true; Squeezebox-expanded-MY_MUSIC=0; Squeezebox-expanded-RADIO=0; Squeezebox-expanded-PLUGIN_MY_APPS_MODULE_NAME=0; Squeezebox-expanded-FAVORITES=0; Squeezebox-expanded-PLUGINS=0; Squeezebox-player=00%3A04%3A20%3A27%3Aa7%3A28
    Host:homeserver
    Origin:http://homeserver
    Referer:http://homeserver/visu_svn/visu/editor/
    User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
    X-Requested-With:XMLHttpRequest
    Form Dataview sourceview URL encoded
    config:visu_config.xml
    data:[{"nodeName":"pages","attributes":{"design":"pure","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xsi:noNamespaceSchemaLocation":"./visu_config.xsd"},"children":[{"nodeName":"meta","attributes":{},"children":[{"nodeName":"plugins","attributes":{},"children":[{"nodeName":"plugin","attributes":{"name":"colorchooser"},"nodeValue":"","children":[]},{"nodeName":"plugin","attributes":{"name":"diagram"},"nodeValue":"","children":[]}]},{"nodeName":"mappings","attributes":{},"children":[{"nodeName":"mapping","attributes":{"name":"Open_Close"},"children":[{"nodeName":"entry","attributes":{"value":"0"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"zu","children":[]}]},{"nodeName":"entry","attributes":{"value":"1"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"offen","children":[]}]}]},{"nodeName":"mapping","attributes":{"name":"Close_Open"},"children":[{"nodeName":"entry","attributes":{"value":"0"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"offen","children":[]}]},{"nodeName":"entry","attributes":{"value":"1"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"zu","children":[]}]}]},{"nodeName":"mapping","attributes":{"name":"On_Off"},"children":[{"nodeName":"entry","attributes":{"value":"0"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Aus","children":[]}]},{"nodeName":"entry","attributes":{"value":"1"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"An","children":[]}]}]},{"nodeName":"mapping","attributes":{"name":"Off_On"},"children":[{"nodeName":"entry","attributes":{"value":"0"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"An","children":[]}]},{"nodeName":"entry","attributes":{"value":"1"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Aus","children":[]}]}]},{"nodeName":"mapping","attributes":{"name":"KonnexHVAC"},"children":[{"nodeName":"entry","attributes":{"value":"auto"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Auto","children":[]}]},{"nodeName":"entry","attributes":{"value":"comfort"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Komfort","children":[]}]},{"nodeName":"entry","attributes":{"value":"standby"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Stand By","children":[]}]},{"nodeName":"entry","attributes":{"value":"economy"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Economy","children":[]}]},{"nodeName":"entry","attributes":{"value":"building_protection"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Haus-Schutz","children":[]}]}]}]},{"nodeName":"stylings","attributes":{},"children":[{"nodeName":"styling","attributes":{"name":"Blue_Purple_Red"},"children":[{"nodeName":"entry","attributes":{"range_min":"10","range_max":"18"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"blue","children":[]}]},{"nodeName":"entry","attributes":{"range_min":"18","range_max":"21"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"purple","children":[]}]},{"nodeName":"entry","attributes":{"range_min":"21","range_max":"25"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"red","children":[]}]}]},{"nodeName":"styling","attributes":{"name":"Red_Green"},"children":[{"nodeName":"entry","attributes":{"value":"0"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"red","children":[]}]},{"nodeName":"entry","attributes":{"value":"1"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"green","children":[]}]}]},{"nodeName":"styling","attributes":{"name":"Green_Red"},"children":[{"nodeName":"entry","attributes":{"value":"0"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"green","children":[]}]},{"nodeName":"entry","attributes":{"value":"1"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"red","children":[]}]}]},{"nodeName":"styling","attributes":{"name":"Blue_Green_Red"},"children":[{"nodeName":"entry","attributes":{"range_min":"-100","range_max":"20"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"blue","children":[]}]},{"nodeName":"entry","attributes":{"range_min":"20","range_max":"22"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"green","children":[]}]},{"nodeName":"entry","attributes":{"range_min":"22","range_max":"100"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"red","children":[]}]}]}]},{"nodeName":"statusbar","attributes":{},"children":[{"nodeName":"status","attributes":{"type":"html"},"nodeValue":"<img src=\"icon/comet_64_ff8000.png\" alt=\"CometVisu\" /> by <a href=\"http://www.cometvisu.org/\">CometVisu.org</a>\n          - <a href=\".?forceReload=true\">Reload</a>\n          - <a href=\"?config=demo\">Widget Demo</a>","children":[]},{"nodeName":"status","attributes":{"type":"html","condition":"!edit","hrefextend":"config"},"nodeValue":"- <a href=\"edit_config.html\">Edit</a>","children":[]},{"nodeName":"status","attributes":{"type":"html","condition":"edit","hrefextend":"all"},"nodeValue":"- <a href=\".\">normal Mode</a>","children":[]},{"nodeName":"status","attributes":{"type":"html"},"nodeValue":"- <a href=\"check_config.php\">Check Config</a>","children":[]}]}]},{"nodeName":"page","attributes":{"name":"Start"},"children":[{"nodeName":"line","attributes":{},"nodeValue":"","children":[]},{"nodeName":"text","attributes":{"align":"center"},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Welcome to the CometVisu!!","children":[]}]},{"nodeName":"line","attributes":{},"nodeValue":"","children":[]},{"nodeName":"diagram_inline","attributes":{"rrd":"28.BFBA1B030000_temp","width":"400px","height":"200px","unit":"°C","series":"hour","period":"24","datasource":"AVERAGE","refresh":"60"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Wohnzimmer","children":[]}]}]},{"nodeName":"page","attributes":{"name":"Fenster"},"children":[{"nodeName":"info","attributes":{"mapping":"Close_Open","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Schuppen Außentür","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"8/1/1","children":[]}]},{"nodeName":"info","attributes":{"mapping":"Open_Close","styling":"Green_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Fenster Schuppen I","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"8/1/36","children":[]}]},{"nodeName":"info","attributes":{"mapping":"Open_Close","styling":"Green_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Fenster Schuppen II","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"8/1/37","children":[]}]},{"nodeName":"info","attributes":{"mapping":"Close_Open","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Schuppen Innentür","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"8/1/0","children":[]}]},{"nodeName":"info","attributes":{"mapping":"Close_Open","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Hintertür","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"8/1/6","children":[]}]},{"nodeName":"info","attributes":{"mapping":"Open_Close","styling":"Green_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Fenster Gästebad","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"8/1/38","children":[]}]},{"nodeName":"info","attributes":{"mapping":"Close_Open","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Fenster Küche","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"8/1/10","children":[]}]},{"nodeName":"info","attributes":{"mapping":"Close_Open","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Fenster Esszimmer","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"8/1/15","children":[]}]},{"nodeName":"info","attributes":{"mapping":"Close_Open","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Fenster Wohnzimmer","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"8/1/20","children":[]}]},{"nodeName":"info","attributes":{"mapping":"Open_Close","styling":"Green_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Fenster Arbeitszimmer","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"8/1/27","children":[]}]},{"nodeName":"info","attributes":{"mapping":"Close_Open","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Fenster Gästezimmer","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"8/1/32","children":[]}]}]},{"nodeName":"page","attributes":{"name":"Lampen Wohnbereich"},"children":[{"nodeName":"line","attributes":{},"nodeValue":"","children":[]},{"nodeName":"switch","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Küche","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","variant":""},"nodeValue":"1/1/60","children":[]}]},{"nodeName":"slide","attributes":{"min":"100","max":"255","step":"10","mapping":"Off_On"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Küche","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:5.004","mode":"write","variant":""},"nodeValue":"1/1/63","children":[]}]},{"nodeName":"switch","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Schränke","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","variant":""},"nodeValue":"1/1/90","children":[]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"1/1/60","children":[]}]},{"nodeName":"switch","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Block","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","variant":""},"nodeValue":"1/1/80","children":[]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"1/1/60","children":[]}]},{"nodeName":"line","attributes":{},"nodeValue":"","children":[]},{"nodeName":"switch","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Essen","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","variant":""},"nodeValue":"1/1/120","children":[]}]},{"nodeName":"slide","attributes":{"min":"100","max":"255","step":"10","mapping":"Off_On"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Essen","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:5.004","mode":"write","variant":""},"nodeValue":"1/1/123","children":[]}]},{"nodeName":"switch","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Wand","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","variant":""},"nodeValue":"1/1/126","children":[]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"1/1/120","children":[]}]},{"nodeName":"switch","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Fenster","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","variant":""},"nodeValue":"1/1/124","children":[]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"1/1/120","children":[]}]},{"nodeName":"line","attributes":{},"nodeValue":"","children":[]},{"nodeName":"switch","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Wohnen","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","variant":""},"nodeValue":"1/1/160","children":[]}]},{"nodeName":"slide","attributes":{"min":"100","max":"255","step":"10","mapping":"Off_On"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Wohnen","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:5.004","mode":"write","variant":""},"nodeValue":"1/1/163","children":[]}]},{"nodeName":"switch","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Kamin","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"write","variant":""},"nodeValue":"1/1/128","children":[]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"1/1/160","children":[]}]},{"nodeName":"switch","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"HH Wand","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","variant":""},"nodeValue":"1/1/136","children":[]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"1/1/160","children":[]}]},{"nodeName":"switch","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Galerie","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","variant":""},"nodeValue":"1/1/134","children":[]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"1/1/160","children":[]}]},{"nodeName":"switch","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Sofa","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","variant":""},"nodeValue":"1/1/138","children":[]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"read","variant":""},"nodeValue":"1/1/160","children":[]}]}]},{"nodeName":"switch","attributes":{"on_value":"0","off_value":"0","mapping":"On_Off","styling":"Green_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Flur","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:5.001","mode":"write","variant":""},"nodeValue":"1/1/14","children":[]},{"nodeName":"address","attributes":{"transform":"DPT:5.001","mode":"write","variant":""},"nodeValue":"1/1/15","children":[]},{"nodeName":"address","attributes":{"transform":"DPT:5.001","mode":"write","variant":""},"nodeValue":"1/1/16","children":[]}]},{"nodeName":"page","attributes":{"name":"Verschattung"},"children":[{"nodeName":"slide","attributes":{"min":"0","max":"100","step":"10","mapping":"Open_Close"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Schlafzimmer","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:5.001","mode":"write","variant":""},"nodeValue":"2/2/44","children":[]}]}]},{"nodeName":"info","attributes":{},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Aussentemp","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/5/1","children":[]}]},{"nodeName":"info","attributes":{},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Dachtemp","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/5/15","children":[]}]},{"nodeName":"page","attributes":{"name":"Heizung"},"children":[{"nodeName":"slide","attributes":{"min":"16","max":"24","step":"0.25","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Wohnzimmer","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/1/106","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ist","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/1/25","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Soll","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/1/106","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"slide","attributes":{"min":"16","max":"24","step":"0.25","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Kueche","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/1/66","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ist","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/1/15","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Soll","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/1/66","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"slide","attributes":{"min":"16","max":"24","step":"0.25","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Arbeit","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/1/106","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ist","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/1/25","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Soll","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/1/106","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"slide","attributes":{"min":"16","max":"24","step":"0.25","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Flur","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/1/26","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ist","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/1/5","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Soll","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/1/26","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"slide","attributes":{"min":"16","max":"24","step":"0.25","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Gaestebad","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/1/46","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ist","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/1/10","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Soll","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/1/46","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"slide","attributes":{"min":"16","max":"24","step":"0.25","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Gaeste","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/1/146","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ist","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/1/35","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Soll","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/1/146","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"slide","attributes":{"min":"16","max":"24","step":"0.25","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Kinderbad","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/2/86","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ist","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/2/20","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Soll","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/2/86","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"slide","attributes":{"min":"16","max":"24","step":"0.25","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Flur","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/2/106","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ist","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/2/25","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Soll","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/2/106","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"slide","attributes":{"min":"16","max":"24","step":"0.25","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Lina","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/2/6","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ist","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/2/0","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Soll","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/2/6","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"slide","attributes":{"min":"16","max":"24","step":"0.25","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Till","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/2/66","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ist","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/2/15","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Soll","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/2/66","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"slide","attributes":{"min":"16","max":"24","step":"0.25","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Elternbad","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/2/26","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ist","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/2/5","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Soll","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/2/26","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"slide","attributes":{"min":"16","max":"24","step":"0.25","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Schlafzimmer","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/2/46","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ist","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"6/2/10","children":[]}]},{"nodeName":"info","attributes":{"format":"%.1f°C","styling":"Blue_Purple_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Soll","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:9.001","mode":"write","variant":""},"nodeValue":"3/2/46","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"switch","attributes":{"on_value":"1","off_value":"0","mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Sommer","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"write","variant":""},"nodeValue":"3/7/1","children":[]}]},{"nodeName":"toggle","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Nacht","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"write","variant":""},"nodeValue":"3/7/0","children":[]}]},{"nodeName":"switch","attributes":{"on_value":"1","off_value":"0","mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Ofen","children":[]}]},{"nodeName":"address","attributes":{"transform":"","mode":"write","variant":""},"nodeValue":"3/7/2","children":[]}]},{"nodeName":"break","attributes":{},"nodeValue":"","children":[]},{"nodeName":"toggle","attributes":{"mapping":"On_Off","styling":"Green_Red"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Pelletofen","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"write","variant":""},"nodeValue":"3/7/3","children":[]}]},{"nodeName":"toggle","attributes":{"mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Pelletofen Auto","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"write","variant":""},"nodeValue":"3/7/4","children":[]}]}]},{"nodeName":"page","attributes":{"name":"Heizungs Diagramme"},"children":[{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Flur","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"15","max":"25","unit":"°C"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"100","unit":"%"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#0000FF","label":"Temperatur","yaxis":"left"},"nodeValue":"Heizung_EG_Flur_Temp","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Stellwert","yaxis":"right"},"nodeValue":"Heizung_EG_Flur_Status_Stellwert","children":[]},{"nodeName":"rrd","attributes":{"color":"#FFFFFF","label":"Sollwert","yaxis":"left"},"nodeValue":"Heizung_EG_Flur_Sollwert","children":[]}]},{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Kueche","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"15","max":"25","unit":"°C"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"100","unit":"%"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#0000FF","label":"Temperatur","yaxis":"left"},"nodeValue":"Heizung_EG_Kueche_Temp","children":[]},{"nodeName":"rrd","attributes":{"color":"#01DF01","label":"Estrich","yaxis":"left"},"nodeValue":"Heizung_EG_Kueche_EstrichTemp","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Stellwert","yaxis":"right"},"nodeValue":"Heizung_EG_Kueche_Status_Stellwert","children":[]},{"nodeName":"rrd","attributes":{"color":"#FFFFFF","label":"Sollwert","yaxis":"left"},"nodeValue":"Heizung_EG_Kueche_Sollwert","children":[]}]},{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Esszimmer","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"15","max":"25","unit":"°C"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"100","unit":"%"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Stellwert","yaxis":"right"},"nodeValue":"Heizung_EG_Esszimmer_Status_Stellwert","children":[]}]},{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Wohnzimmer","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"15","max":"25","unit":"°C"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"100","unit":"%"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#0000FF","label":"Temperatur","yaxis":"left"},"nodeValue":"Heizung_EG_Wohnzimmer_Temp","children":[]},{"nodeName":"rrd","attributes":{"color":"#01DF01","label":"Estrich","yaxis":"left"},"nodeValue":"Heizung_EG_Wohnzimmer_EstrichTemp","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Stellwert","yaxis":"right"},"nodeValue":"Heizung_EG_Wohnzimmer_Status_Stellwert","children":[]},{"nodeName":"rrd","attributes":{"color":"#FFFFFF","label":"Sollwert","yaxis":"left"},"nodeValue":"Heizung_EG_Wohnzimmer_Sollwert","children":[]}]},{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Arbeitszimmer","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"15","max":"25","unit":"°C"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"100","unit":"%"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#01DF01","label":"Estrich","yaxis":"left"},"nodeValue":"Heizung_EG_Arbeitszimmer_EstrichTemp","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Stellwert","yaxis":"right"},"nodeValue":"Heizung_EG_Arbeitszimmer_Status_Stellwert","children":[]},{"nodeName":"rrd","attributes":{"color":"#FFFFFF","label":"Sollwert","yaxis":"left"},"nodeValue":"Heizung_EG_Arbeitszimmer_Sollwert","children":[]}]},{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Gaestezimmer","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"15","max":"25","unit":"°C"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"100","unit":"%"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#0000FF","label":"Temperatur","yaxis":"left"},"nodeValue":"Heizung_EG_Gaestezimmer_Temp","children":[]},{"nodeName":"rrd","attributes":{"color":"#01DF01","label":"Estrich","yaxis":"left"},"nodeValue":"Heizung_EG_Gaestezimmer_EstrichTemp","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Stellwert","yaxis":"right"},"nodeValue":"Heizung_EG_Gaestezimmer_Status_Stellwert","children":[]},{"nodeName":"rrd","attributes":{"color":"#FFFFFF","label":"Sollwert","yaxis":"left"},"nodeValue":"Heizung_EG_Gaestezimmer_Sollwert","children":[]}]},{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Gaestebad","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"15","max":"25","unit":"°C"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"100","unit":"%"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#0000FF","label":"Temperatur","yaxis":"left"},"nodeValue":"Heizung_EG_Gaestebad_Temp","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Stellwert","yaxis":"right"},"nodeValue":"Heizung_EG_Gaestebad_Status_Stellwert","children":[]},{"nodeName":"rrd","attributes":{"color":"#FFFFFF","label":"Sollwert","yaxis":"left"},"nodeValue":"Heizung_EG_Gaestebad_Sollwert","children":[]}]},{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Lina","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"15","max":"25","unit":"°C"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"100","unit":"%"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#0000FF","label":"Temperatur","yaxis":"left"},"nodeValue":"Heizung_OG_Lina_Temp","children":[]},{"nodeName":"rrd","attributes":{"color":"#01DF01","label":"Estrich","yaxis":"left"},"nodeValue":"Heizung_OG_Lina_EstrichTemp","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Stellwert","yaxis":"right"},"nodeValue":"Heizung_OG_Lina_Status_Stellwert","children":[]},{"nodeName":"rrd","attributes":{"color":"#FFFFFF","label":"Sollwert","yaxis":"left"},"nodeValue":"Heizung_OG_Lina_Sollwert","children":[]}]},{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Elternbad","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"15","max":"25","unit":"°C"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"100","unit":"%"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#0000FF","label":"Temperatur","yaxis":"left"},"nodeValue":"Heizung_OG_Elternbad_Temp","children":[]},{"nodeName":"rrd","attributes":{"color":"#01DF01","label":"Estrich","yaxis":"left"},"nodeValue":"Heizung_OG_Elternbad_EstrichTemp","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Stellwert","yaxis":"right"},"nodeValue":"Heizung_OG_Elternbad_Status_Stellwert","children":[]},{"nodeName":"rrd","attributes":{"color":"#FFFFFF","label":"Sollwert","yaxis":"left"},"nodeValue":"Heizung_OG_Elternbad_Sollwert","children":[]}]},{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Elternzimmer","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"15","max":"25","unit":"°C"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"100","unit":"%"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#0000FF","label":"Temperatur","yaxis":"left"},"nodeValue":"Heizung_OG_Elternzimmer_Temp","children":[]},{"nodeName":"rrd","attributes":{"color":"#01DF01","label":"Estrich","yaxis":"left"},"nodeValue":"Heizung_OG_Elternzimmer_EstrichTemp","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Stellwert","yaxis":"right"},"nodeValue":"Heizung_OG_Elternzimmer_Status_Stellwert","children":[]},{"nodeName":"rrd","attributes":{"color":"#FFFFFF","label":"Sollwert","yaxis":"left"},"nodeValue":"Heizung_OG_Elternzimmer_Sollwert","children":[]}]},{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Till","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"15","max":"25","unit":"°C"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"100","unit":"%"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#0000FF","label":"Temperatur","yaxis":"left"},"nodeValue":"Heizung_OG_Till_Temp","children":[]},{"nodeName":"rrd","attributes":{"color":"#01DF01","label":"Estrich","yaxis":"left"},"nodeValue":"Heizung_OG_Till_EstrichTemp","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Stellwert","yaxis":"right"},"nodeValue":"Heizung_OG_Till_Status_Stellwert","children":[]},{"nodeName":"rrd","attributes":{"color":"#FFFFFF","label":"Sollwert","yaxis":"left"},"nodeValue":"Heizung_OG_Till_Sollwert","children":[]}]},{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Kinderbad","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"15","max":"25","unit":"°C"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"100","unit":"%"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#0000FF","label":"Temperatur","yaxis":"left"},"nodeValue":"Heizung_OG_Kinderbad_Temp","children":[]},{"nodeName":"rrd","attributes":{"color":"#01DF01","label":"Estrich","yaxis":"left"},"nodeValue":"Heizung_OG_Kinderbad_EstrichTemp","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Stellwert","yaxis":"right"},"nodeValue":"Heizung_OG_Kinderbad_Status_Stellwert","children":[]},{"nodeName":"rrd","attributes":{"color":"#FFFFFF","label":"Sollwert","yaxis":"left"},"nodeValue":"Heizung_OG_Kinderbad_Sollwert","children":[]}]}]},{"nodeName":"page","attributes":{"name":"Verschattungsautomatik"},"children":[{"nodeName":"diagram_inline","attributes":{"series":"day","period":"1","refresh":"300","width":"600","height":"300","gridcolor":"#707070"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Verschattungsautomatik","children":[]}]},{"nodeName":"axis","attributes":{"position":"left","min":"0","max":"100","unit":"%"},"nodeValue":"left","children":[]},{"nodeName":"axis","attributes":{"position":"right","min":"0","max":"80000","unit":"lux"},"nodeValue":"right","children":[]},{"nodeName":"rrd","attributes":{"color":"#0000FF","label":"Winkel","yaxis":"left"},"nodeValue":"Verschattungsautomatik_Lamellenposition_Jalousieposition","children":[]},{"nodeName":"rrd","attributes":{"color":"#FF0000","label":"Hoehe","yaxis":"left"},"nodeValue":"Verschattungsautomatik_Sued_Jalousieposition","children":[]},{"nodeName":"rrd","attributes":{"color":"#FFFFFF","label":"Helligkeit","yaxis":"right"},"nodeValue":"Helligkeit_Sued","children":[]}]},{"nodeName":"switch","attributes":{"on_value":"1","off_value":"0","mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Sperre","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:1.001","mode":"write","variant":""},"nodeValue":"2/7/2","children":[]}]}]},{"nodeName":"diagram_inline","attributes":{"rrd":"28.F3BE1B030000_temp","width":"600px","height":"200px","unit":"°C","series":"hour","period":"24","datasource":"AVERAGE","refresh":"100"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Pufferspeicher","children":[]}]}]},{"nodeName":"colorchooser","attributes":{},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Flur","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:5.001","mode":"write","variant":"r"},"nodeValue":"1/1/14","children":[]},{"nodeName":"address","attributes":{"transform":"DPT:5.001","mode":"write","variant":"g"},"nodeValue":"1/1/15","children":[]},{"nodeName":"address","attributes":{"transform":"DPT:5.001","mode":"write","variant":"b"},"nodeValue":"1/1/16","children":[]}]},{"nodeName":"switch","attributes":{"on_value":"100","off_value":"0","mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Rot","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:5.001","mode":"write","variant":""},"nodeValue":"1/1/14","children":[]}]},{"nodeName":"switch","attributes":{"on_value":"100","off_value":"0","mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Gruen","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:5.001","mode":"write","variant":""},"nodeValue":"1/1/15","children":[]}]},{"nodeName":"switch","attributes":{"on_value":"100","off_value":"0","mapping":"On_Off","styling":"Red_Green"},"children":[{"nodeName":"label","attributes":{},"children":[{"nodeName":"#text","attributes":{},"nodeValue":"Blau","children":[]}]},{"nodeName":"address","attributes":{"transform":"DPT:5.001","mode":"write","variant":""},"nodeValue":"1/1/16","children":[]}]}]}]}]
    Response Headersview source
    Content-type:application/json
    Date:Sat, 29 Jun 2013 20:30:41 GMT
    Server:lighttpd/1.4.28
    Transfer-Encoding:chunked
    X-Powered-By:PHP/5.3.10-1ubuntu3.6
    Hilft das bei der Fehlersuche?
    Kann ich sonst irgendetwas dafür tun?

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Tatsache. Ist drin.

    Dennoch habe ich das Problem, das du vor der Änderung hattest (unexpected token).
    Werde bei Gelegenheit mal gucken, ob ich mehr Infos schicken kann.

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Doch ist mit Rev. 1601 rein und sollte auch noch drin sein.

    SourceForge.net Repository - [openautomation] Diff of /CometVisu/trunk/src/editor/bin/save_config.php

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    das hier ist doch die Lösung, oder?
    Zitat von netzkind Beitrag anzeigen
    Sehr gut.

    Änder mal Zeile 72 des Skriptes von

    Code:
    $arrData = json_decode(stripslashes($strJson), true);
    in
    Code:
    if (true === function_exists("get_magic_quotes_gpc") && 1 == get_magic_quotes_gpc()) {
        // magic_quotes are on, so we have to remove those unneccessary slashes from input
        $arrData = json_decode(stripslashes($strJson), true);
    } else {
        $arrData = json_decode($strJson, true);
    }
    So verstehe ich das hier zumindest..
    Zitat von JuMi2006 Beitrag anzeigen
    Perfekt!
    Kann so ins SVN und kommt mit aufs Raspberry-Image ... besten Dank.
    Es ist aber noch nicht im SVN, oder?

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • prz
    antwortet
    Zitat von Chris M. Beitrag anzeigen
    Ja und Nein.

    Die CometVisu hat keinerlei Sicherheitsfeatures eingebaut, da das der falsche Level ist:
    Man kann aber (wenn man kann!) den Web-Server entsprechend absichern (-> HTTPS, Authentifizierung) über den dann die CometVisu läuft.

    Das sollte gleich sicher sein wie ein VPN - aber man muss schon wissen was man macht! Dann wäre aber auch jegliches mögliche PHP Problem damit gelöst.

    Davon unabhängig: das CometVisu-Protokoll unterstützt eine Authentifizierung (im CometVisu-Client nur sehr rudimentär umgesetzt, in der CometVisu Visualisierung ungenutzt). Das dient aber nicht dem Schutz vor externen Angreifen - dazu ist VPN oder HTTPS gedacht! Das könnte man dazu verwenden auf Bus-Adress-Ebene zu filtern und vor z.B. Fehlbedienungen zu schützen.
    Da im Privat-Haus egal, ist's bisher noch nicht detaillierter implementiert. Und wer's schon jetzt brauchen sollte, ist vermutlich mit Filtern auf dem KNX selbst deutlich besser beraten (-> interner Filter vs. dedizierter Firewall).
    Bin mit Chris im weitesten einverstanden. VPNs sind recht muehsam in Konfiguraiton und ueberfordern Leute ziemlich schnell (*aus eigener Erfahrung mit Installationen). Und CV ist sicher nicht fuer sicherung der visu gegen BUS zustaendig selber.

    Wenn aber ein Protokoll unter CometVisu laeufen kann das die Schnittstelle gegen den 'server' sichert, authentiziert, cryptet etc. dann ist es ohne weiteres moeglich CometVisu von aussen zu betreiben mit einem einfachen 'port punch through' auf der firewall (oder wenn server direkt am internet, sogar ohne). Die Konfiguration in CV fuer server/port ist entweder local zum device (man will ja eben das nicht in der visu datei haben) oder man koennte eine kleine login box der visu verpassen, die merkt, dass eibd-server != lokaler server in javascript & die aufpoppt. Jemand schon daran gearbeitet oder Lust ? Protokoll bringe ich ;-)

    Einen Kommentar schreiben:


  • Chris M.
    antwortet
    Zitat von swiss Beitrag anzeigen
    Naja...
    Da die CometVisu selbst absolut sicherheitsfrei ist, und auch nicht direkt in's Internet durch geschaltet werden sollte!, hallte ich das Sicherheitsproblem von PHP für Gering. Da müsste erst jemand den VPN hacken und dann braucht er auch nicht mehr PHP zu knacken sondern ist eh schon drin...
    Ja und Nein.

    Die CometVisu hat keinerlei Sicherheitsfeatures eingebaut, da das der falsche Level ist:
    Man kann aber (wenn man kann!) den Web-Server entsprechend absichern (-> HTTPS, Authentifizierung) über den dann die CometVisu läuft.

    Das sollte gleich sicher sein wie ein VPN - aber man muss schon wissen was man macht! Dann wäre aber auch jegliches mögliche PHP Problem damit gelöst.

    Davon unabhängig: das CometVisu-Protokoll unterstützt eine Authentifizierung (im CometVisu-Client nur sehr rudimentär umgesetzt, in der CometVisu Visualisierung ungenutzt). Das dient aber nicht dem Schutz vor externen Angreifen - dazu ist VPN oder HTTPS gedacht! Das könnte man dazu verwenden auf Bus-Adress-Ebene zu filtern und vor z.B. Fehlbedienungen zu schützen.
    Da im Privat-Haus egal, ist's bisher noch nicht detaillierter implementiert. Und wer's schon jetzt brauchen sollte, ist vermutlich mit Filtern auf dem KNX selbst deutlich besser beraten (-> interner Filter vs. dedizierter Firewall).

    Einen Kommentar schreiben:


  • swiss
    antwortet
    Naja...
    Da die CometVisu selbst absolut sicherheitsfrei ist, und auch nicht direkt in's Internet durch geschaltet werden sollte!, hallte ich das Sicherheitsproblem von PHP für Gering. Da müsste erst jemand den VPN hacken und dann braucht er auch nicht mehr PHP zu knacken sondern ist eh schon drin...

    Einen Kommentar schreiben:


  • prz
    antwortet
    OK, ja, dann habe ich einfach missverstanden was Du unter 'DataProvider' versteht.

    Fuer Dich ist ein 'Field-data-provider' ein Dataprovider, fuer mich war es eher ein 'dataprovider' fuer alle felder (eben halt data). Das ist ok, design decision.

    Ich loese es jetzt indem ich 'monkey-patching' mache am schluss und gewaehlte providers ueberschreibe am ende des files. Nicht elegant aber was besseres ist mir
    nicht eingefallen.

    PHP, bin kein grosser kenner davon, habe aber paar server in betreung und da wurde von 4.x bis 5.3 aufgebrochen wie rohe eier ueber irgendwelche shops & admin apps, seit 5.4 ist etwas besser, darum tendiere ich zu 5.4.

    Einen Kommentar schreiben:


  • netzkind
    antwortet
    Zitat von prz Beitrag anzeigen
    Momentan heisst das DataProviderManager, eigentlich aber gibt's nur property & wildcard von EINEM DataProvider, der halt ueber solche phps implementiert wird.
    Also ich sehe da (in der DataProviderConfig) ein halbes Dutzend DataProvider, unter anderem einen für RRDs, einen für Gruppenadressen, einen für Designs, einen für DPTs, Stylings, Mappings,...

    DataProvider sind jeweils die Skripte/Dateien welche die Daten zu einem "Feld" liefern (vgl. vorgenannte Liste). Der DataProviderManager verwaltet auf Editor-Seite "nur" den Zugriff, Prefetching und das Caching dieser Provider.

    Irgendwo gibt es also eine Diskrepanz zwischen dem wie du den Code liest, und wie ich ihn lese (und geschrieben habe), wenn du nur einen einzigen DataProvider siehst.

    Zum Thema PHP hast du mit 5.3.3 aber auch wahrlich keine aktuelle Version gewählt. Hatte mir schon Gedanken gemacht, da ich beruflich viel mit 5.3 zu tun habe, aber die Sorge ist für mich dann doch unberechtigt :-)

    Grüße,
    Julian

    Einen Kommentar schreiben:


  • prz
    antwortet
    Zitat von netzkind Beitrag anzeigen
    Ja nein vielleicht.
    Ich versteh die Frage nicht.

    Wenn der User im Editor eine Eigenschaft zum Bearbeiten auswählt, wird in der DataProviderConfig geschaut, ob es zu diesem speziellen Element und der Eigenschaft einen Provider gibt, inkl. Fallback per Wildcard. Ist dem so, werden die Daten ermittelt und dem Editor für dessen Auswahllisten übermittelt.

    Die Dataprovider sind ein genereller Ansatz um Daten aus beliebiger Quelle zu einzelnen Elementen des Editors zu ermitteln. Nicht alle Daten sind statisch, und vor allem stammen nicht alle Daten vom Server, sondern ein Teil wird live aus der Config generiert.

    Wenn du jetzt sagst, du kannst das alles statisch vom Server laden, dann verstehe ich die Frage noch viel weniger.

    (ich hab aber auch nicht verstanden wieso du sagst PHP < 5.4 sei unsicher, also vielleicht fehlt mir da grundsätzlich der Draht zu deinem Ansatz)

    Grüße,
    Julian
    OK, ich versuche klarer zu sein:

    so wie man backends aus-swappen kann, muesste man vielleicht dataproviders ausswappen koennen (ich weiss, das ist dann NICHT configuration file spezifisch sondern CV spezifisch, so ein 'global' setting halt). Momentan heisst das DataProviderManager, eigentlich aber gibt's nur property & wildcard von EINEM DataProvider, der halt ueber solche phps implementiert wird.

    Wenn ein DataProvider e.g. ueber JSON die ganzen address configs laden kann
    vom server dann muss man halt diese eine DataProviderConfig (mache ich gerade)
    umbiegen. Oder Ihr versteht unter Manager einen PropertyManager unter EINEM
    moeglichen proiver and nicht Manager von mehreren DataProviders (wie es der Name suggeriert fuer mich).

    Hoffe dies etwas klarer nun


    wegen PHP:

    PHP PHP version 5.3.3 : Security vulnerabilities

    Einen Kommentar schreiben:


  • netzkind
    antwortet
    Zitat von prz Beitrag anzeigen
    Da haette ich gerne etwas fundierte Meinung von den Gurus hier, da ich gerade auf neue Platform portiere (wie schon gesagt, mehr detail in paar wochen).

    Ich habe hier eine platform, da kann ich ganze address configs einfach ueber ajax von der platform holen & viele andere Zauber & brauche keine php magic dafuer eigentlich. Soll ich den manager fixen, damit der mehrere providers zulaesst.

    Wie mache ich das ? mache ich dataprovider einfach zu einem array, da gibt's ein $each(DataProviderConfig, ... ?? Der momentane DataProviderConfig ist nichts dergleichen, der erlaubt einfach eine '*' wildcard und einzelne Elemente. Mir ist die Architektur da nicht ganz klar.
    Ja nein vielleicht.
    Ich versteh die Frage nicht.

    Wenn der User im Editor eine Eigenschaft zum Bearbeiten auswählt, wird in der DataProviderConfig geschaut, ob es zu diesem speziellen Element und der Eigenschaft einen Provider gibt, inkl. Fallback per Wildcard. Ist dem so, werden die Daten ermittelt und dem Editor für dessen Auswahllisten übermittelt.

    Die Dataprovider sind ein genereller Ansatz um Daten aus beliebiger Quelle zu einzelnen Elementen des Editors zu ermitteln. Nicht alle Daten sind statisch, und vor allem stammen nicht alle Daten vom Server, sondern ein Teil wird live aus der Config generiert.

    Wenn du jetzt sagst, du kannst das alles statisch vom Server laden, dann verstehe ich die Frage noch viel weniger.

    (ich hab aber auch nicht verstanden wieso du sagst PHP < 5.4 sei unsicher, also vielleicht fehlt mir da grundsätzlich der Draht zu deinem Ansatz)

    Grüße,
    Julian

    Einen Kommentar schreiben:


  • prz
    antwortet
    Zitat von netzkind Beitrag anzeigen
    Diese dependencies bestehen ja nurnoch durch die dataprovider im Editor, soweit ich weiß. Da kann man sich sicher Gedanken darum machen, ob man für andere Plattformen andere dataprovider entwickeln will. Der Code ist in PHP, und sollte eigentlich relativ ordentlich dokumentiert sein. Der eigentlichen Visu ist relativ egal, wo es die Daten herbekommt.
    Alternativ kann man die dataprovider auch erst mal so umstellen, dass sie im Falle fehlender Dateien nicht gleich ausflippen, sondern eine leere Antwort liefern. Damit wäre die depencide aufgebrochen, zu Lasten der UX.
    Da haette ich gerne etwas fundierte Meinung von den Gurus hier, da ich gerade auf neue Platform portiere (wie schon gesagt, mehr detail in paar wochen).

    Ich habe hier eine platform, da kann ich ganze address configs einfach ueber ajax von der platform holen & viele andere Zauber & brauche keine php magic dafuer eigentlich. Soll ich den manager fixen, damit der mehrere providers zulaesst.

    Wie mache ich das ? mache ich dataprovider einfach zu einem array, da gibt's ein $each(DataProviderConfig, ... ?? Der momentane DataProviderConfig ist nichts dergleichen, der erlaubt einfach eine '*' wildcard und einzelne Elemente. Mir ist die Architektur da nicht ganz klar.

    Zu Graphen werde ich dann noch spaeter kommen.

    Einen Kommentar schreiben:


  • Robert
    antwortet
    user-xperience

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Hallo Julian,

    was heißt zulasten der UX ? Hier fehlt mir einfach das Wort hinter der Abkürzung.
    Ich könnte mir eine (optionale) cometvisu.conf vorstellen die dann den Pfad in den benötigten dataprovidern einstellen lässt.

    Um an der Syntax innerhalb der Provider nicht mehr schrauben zu müssen könnte man ja auch ein perl/php/cgi Script bauen das z.B. einen ETS-Export parst. Für mich ist die ETS (auch wenn ich die 4er noch nicht nutze) eben erstmal der zentrale Sammelpunkt für alle Gruppenadressen. Alles was (in)direkt aus der ETS "fällt" und gleich verwendet werden kann ist daher Gold Wert.

    Dies soll jetzt keine Aufforderung sein das zu tun! Für mich wäre es mittlerweile kein Problem die Abhängigkeiten entsprechend zu beseitigen, zumal ich eine gepflegte eibga.conf und owsensors.conf ja auf meinem WireGate zu liegen habe.
    Bezüglich der Konfiguration und usability hat m.M. nach die CometVisu immernoch die Nase vorn und ich würde, egal wie sich meine Hardware mal entwickelt dieser gern treu bleiben.

    Ich sehe es immer als endlosen Kreis: Mehr User => mehr "Freaks" => mehr Features => große Community

    Vor einem Jahr hätte ich auch nie gedacht mal selbst was zu kompilen, eigene Scripte zu schreiben und halbwegs sinnvoll eine FireBug Ausgabe zu interpretieren. Durch andere Baustellen konnte ich dem letzten Vierteljahr dem SVN aber nur noch bedingt folgen.

    Grüße
    Mirko

    Einen Kommentar schreiben:


  • netzkind
    antwortet
    Zitat von JuMi2006 Beitrag anzeigen
    Ist angedacht irgendwann mal die dependencies zum WireGate etwas aufzulockern?
    Die GAs könnte man ja über ein script aus einem ets-csv/whatever in das eibga.conf Format quetschen ... ow_sensors evtl. auch ... naja wenn ich mal Luft hab schau ich mir die genauen Abhängigkeiten mal an.
    Diese dependencies bestehen ja nurnoch durch die dataprovider im Editor, soweit ich weiß. Da kann man sich sicher Gedanken darum machen, ob man für andere Plattformen andere dataprovider entwickeln will. Der Code ist in PHP, und sollte eigentlich relativ ordentlich dokumentiert sein. Der eigentlichen Visu ist relativ egal, wo es die Daten herbekommt.
    Alternativ kann man die dataprovider auch erst mal so umstellen, dass sie im Falle fehlender Dateien nicht gleich ausflippen, sondern eine leere Antwort liefern. Damit wäre die depencide aufgebrochen, zu Lasten der UX.

    Einen Kommentar schreiben:

Lädt...
X