﻿{"id":153,"date":"2016-03-03T19:33:05","date_gmt":"2016-03-03T18:33:05","guid":{"rendered":"http:\/\/dax.la\/wordpress\/?p=153"},"modified":"2022-03-26T20:27:09","modified_gmt":"2022-03-26T19:27:09","slug":"homematic-und-cmi-verbinden","status":"publish","type":"post","link":"https:\/\/www.dax.la\/wordpress\/2016\/03\/03\/homematic-und-cmi-verbinden\/","title":{"rendered":"Homematic und CMI verbinden"},"content":{"rendered":"\n<p>Unsere Heizung wird von einer UVR1611 (Universalregelung) von <a href=\"http:\/\/www.ta.co.at\/de\/\" target=\"_blank\" rel=\"noopener noreferrer\">Technische Alternative<\/a> gesteuert bzw. h\u00e4ngt \u00fcber ein&nbsp;C.M.I. (Control and Monitoring Interface) im Netzwerk. Mit Hilfe eines Scriptes k\u00f6nnen die Sensorwerte der Heizungssteuerung in Homematic \u00fcbernommen &amp; weiterverarbeitet werden:<\/p>\n\n\n\n<p>Als erstes muss eine Seite im Online-Schema der Steuerung erstellt werden, welche die zu \u00fcbernehmenden Werte beinhaltet:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/web11057.web5.mynet.at\/wordpress\/wp-content\/uploads\/2016\/03\/Schema-2.png\" rel=\"attachment wp-att-154\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"365\" src=\"https:\/\/www.dax.la\/wordpress\/wp-content\/uploads\/2016\/03\/Schema-2-1024x365.png\" alt=\"Schema\" class=\"wp-image-154\" srcset=\"https:\/\/www.dax.la\/wordpress\/wp-content\/uploads\/2016\/03\/Schema-2-1024x365.png 1024w, https:\/\/www.dax.la\/wordpress\/wp-content\/uploads\/2016\/03\/Schema-2-300x107.png 300w, https:\/\/www.dax.la\/wordpress\/wp-content\/uploads\/2016\/03\/Schema-2-768x274.png 768w, https:\/\/www.dax.la\/wordpress\/wp-content\/uploads\/2016\/03\/Schema-2-1568x559.png 1568w, https:\/\/www.dax.la\/wordpress\/wp-content\/uploads\/2016\/03\/Schema-2.png 1680w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/figure>\n\n\n\n<p>Wichtig hierbei ist, dass in den Bezeichnungen keine Umlaute und Sonderzeichen vorkommen. Leerzeichen am Besten durch einen _ ersetzen. Bei mir ist das die Seite 3 des Schemas.<br>Anschlie\u00dfend werden in der Homematic-CCU die betreffenden Variablen als Zahlenwert angelegt, und zwar genau so wie sie im Online-Schema beschriftet sind:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/web11057.web5.mynet.at\/wordpress\/wp-content\/uploads\/2016\/03\/Variable-2.png\" rel=\"attachment wp-att-155\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"562\" src=\"https:\/\/www.dax.la\/wordpress\/wp-content\/uploads\/2016\/03\/Variable-2-1024x562.png\" alt=\"Variable\" class=\"wp-image-155\" srcset=\"https:\/\/www.dax.la\/wordpress\/wp-content\/uploads\/2016\/03\/Variable-2-1024x562.png 1024w, https:\/\/www.dax.la\/wordpress\/wp-content\/uploads\/2016\/03\/Variable-2-300x165.png 300w, https:\/\/www.dax.la\/wordpress\/wp-content\/uploads\/2016\/03\/Variable-2-768x421.png 768w, https:\/\/www.dax.la\/wordpress\/wp-content\/uploads\/2016\/03\/Variable-2-1568x861.png 1568w, https:\/\/www.dax.la\/wordpress\/wp-content\/uploads\/2016\/03\/Variable-2.png 1680w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/figure>\n\n\n\n<p>Nun zum Script, welches die Werte vom Online-Schema abgreift und in die Variablen speichert. Damit das Script funktioniert muss <a href=\"http:\/\/homematic-forum.de\/forum\/viewtopic.php?f=37&amp;t=15298\" target=\"_blank\" rel=\"noopener noreferrer\">CUXD<\/a>&nbsp;und <a href=\"http:\/\/homematic-forum.de\/forum\/viewtopic.php?f=31&amp;t=12780&amp;p=96849#p96849\" target=\"_blank\" rel=\"noopener noreferrer\">CUXD.exec<\/a> installiert sein:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nvar url = &quot;http:\/\/XXXXX:XXXXX@XX.XX.XX.XXX\/schematic_files\/3.cgi&quot;;\ndom.GetObject(&quot;CUxD.CUX2801001:1.CMD_SETS&quot;).State(&quot;wget -q  --auth-no-challenge -O - '&quot;#url#&quot;'&quot;);\ndom.GetObject(&quot;CUxD.CUX2801001:1.CMD_QUERY_RET&quot;).State(1);\nstring srueck = dom.GetObject(&quot;CUxD.CUX2801001:1.CMD_RETS&quot;).State();\nstring liste = &quot;Aussentemperatur: \\n|Raumtemperatur: \\n|Sole-Vorlauf: \\n|Solar-VL: \\n|Solar-RL: \\n|Puffer-VL: \\n|Puffer-RL: \\n|Strahlungssensor: \\n|Aktuelle_Leistung: \\n|Waermemenge_kwh: \\n|Waermemenge_mwh: \\n|Puffer_Oben: \\n|Puffer_Oben_Mitte: \\n|Puffer_Unten_Mitte: \\n|Puffer_Unten: \\n|Kollektor_Fassade: \\n|Kollektor_Dach: \\n|Heizkreis-RL: \\n|Heizkreis-VL: \\n|Heizkreis-VL-Soll: \\n&quot;;\n    string slist =&quot;&quot;;\n    string i;\n    foreach(i, liste.Split(&quot;|&quot;))\n    {\n    var posValueStart = i;\n    var posValueEnd = &quot;\u00b0C&quot;;\n    var posValue = srueck.Find(posValueStart) + posValueStart.Length();\n    var stmp = srueck.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) ;\n    if (stmp.Find(&quot;- &quot;)== 0 ) { stmp = &quot;-&quot;#stmp.Substr(2, stmp.Length());}\n    integer ikomma  = stmp.Find(&quot;,&quot;);\n    string saus1 = stmp.Substr(0, ikomma);\n    string saus2 = saus1 + &quot;.&quot; + stmp.Substr(ikomma + 1, 5);\n    var zaus = saus2.ToFloat();\n    var name = i.Substr(0, i.Length()-3);\ndom.GetObject(&quot;&quot;#name#&quot;&quot;).State(zaus);\n!slist = slist #name #&quot; = &quot;#zaus #&quot;\\n&quot;;\n    }\n!WriteLine(slist);\n<\/pre><\/div>\n\n\n<p>Hier muss nat\u00fcrlich der Benutzer, das Login-Passwort sowie die IP-Adresse des CMI eingesetzt werden. Weiters muss die richtige *.cgi-Datei angegeben werden, in meinem Fall 3.cgi da es bei mir die 3. Seite war.<\/p>\n\n\n\n<p>Schlussendlich muss das Script noch in ein Timer-Programm eingebaut werden, welches zb. alle 60&nbsp;Sekunden ausgef\u00fchrt wird. Von nun an k\u00f6nnen die Variablen weiterverwendet werden und zb. Aktoren abh\u00e4ngig von Raumtemperatur oder Sonnenstrahlung geschalten werden!<\/p>\n\n\n\n<p>Mein besonderer Dank gilt dem User <strong>alchy<\/strong> von&nbsp;<a href=\"http:\/\/homematic-forum.de\/forum\/\">homematic-forum.de<\/a>, der mir dieses Script erstellt hat.<\/p>\n\n\n\n<p>Update 13.12.2016: Ein Fehler im Script hatte dazu gef\u00fchrt, dass negative Werte immer als 0 angezeigt wurden. Das habe ich erst jetzt im Winter bemerkt, alchy war so freundlich und hat mir das Script nochmal \u00fcberarbeitet, jetzt sollte alles funktionieren! Auch habe ich in der Zwischenzeit ein paar Werte hinzugef\u00fcgt (Puffer-Temperaturen usw&#8230;), die Screenshots oben stimmen deshalb nicht mehr mit dem Script \u00fcberein!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unsere Heizung wird von einer UVR1611 (Universalregelung) von Technische Alternative gesteuert bzw. h\u00e4ngt \u00fcber ein&nbsp;C.M.I. (Control and Monitoring Interface) im Netzwerk. Mit Hilfe eines Scriptes k\u00f6nnen die Sensorwerte der Heizungssteuerung in Homematic \u00fcbernommen &amp; weiterverarbeitet werden: Als erstes muss eine Seite im Online-Schema der Steuerung erstellt werden, welche die zu \u00fcbernehmenden Werte beinhaltet: Wichtig hierbei &hellip; <a href=\"https:\/\/www.dax.la\/wordpress\/2016\/03\/03\/homematic-und-cmi-verbinden\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eHomematic und CMI verbinden\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7],"tags":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.dax.la\/wordpress\/wp-json\/wp\/v2\/posts\/153"}],"collection":[{"href":"https:\/\/www.dax.la\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dax.la\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dax.la\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dax.la\/wordpress\/wp-json\/wp\/v2\/comments?post=153"}],"version-history":[{"count":3,"href":"https:\/\/www.dax.la\/wordpress\/wp-json\/wp\/v2\/posts\/153\/revisions"}],"predecessor-version":[{"id":522,"href":"https:\/\/www.dax.la\/wordpress\/wp-json\/wp\/v2\/posts\/153\/revisions\/522"}],"wp:attachment":[{"href":"https:\/\/www.dax.la\/wordpress\/wp-json\/wp\/v2\/media?parent=153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dax.la\/wordpress\/wp-json\/wp\/v2\/categories?post=153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dax.la\/wordpress\/wp-json\/wp\/v2\/tags?post=153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}