NEWS
[Gelöst] Yakha Heizungssteuerung Homematic
-
Um zu prüfen ob mir was angezeigt wird - wenn ich den Datenpunkt für die Batterie auf low setze - hier der Beweis:
Im Prinzip müsstest Du hier auch einen benutzerspezifischen Datenpunkt anlegen. Ich nutze im Moment nur den Datenpunkt von dem Wandthermostat, aber wenn man einen benutzerspezifischen Datenpunkt nimmt, dann setzt man den halt selbst auf 0, wenn Wandthermostat oder eines der wirklichen Ventile einen niedrigen Batteriestand hat. Das halt dann wieder alles über die Logikmaschine gesetzt.
-
Es sieht so aus, also ob man mit "TargetHeatingCoolingState" (mit den validValues settings ) blendet man das Kühlen bereits aus, mit dem TargetHeatingCoolerState bestätigt man die Einstellung, d.h. man setzt das immer gleich - oder benutzt hier die Rückbestätigung des Systems und bestätigt über das ACK Flag.
Im letzteren Fall muss man dann halt OnlyACK einstellen
aber ich mach das nicht, sondern nutze einfach den State und den gleichen Datenpunkt insofern bestätigt sich eine Änderung sofort selbst.
-
@mickym: Danke dir fürs mitausprobieren. Wird bei dir der Wert/Value (Also AUS, Heizung, Automatisch) angepasst wenn die Änderung vom Adapter kommt?
Bei mir leider nicht -
@draexler Nein - das ist doch das was ich gesagt habe - ich habe alles über Userdatenpunkte gemacht. Du musst das also selbst mappen. Du siehst bei mir ist alles unter 0_userdata.0.
Sprich enn bei Dir sich der mode im Adapter ändert musst Du den Datenpunkt selbst setzen. Bei mir ist das ganze ein relativer komplexer NodeRed Flow.
Sprich wenn mode=auto dann Automatisch, mode=manual = Heizung
off steht bei mir in desiredTemperature - weiß nicht ob bei Dir auch der Punkt so heißt.
-
@mickym: Das habe ich ja gemacht. Wenn ich jetzt das manuell ändere z.B. auf 1, ändert sich leider in HomeKit nicht der ausgewählte Wert.
Zum testen Ändere ich also direkt den Datenpunkt ab und die sind im Adapter hinterlegt.
Also den "CurrentHeatingCollingState" Datenpunkt.Also dieses diese Auswahl:
Der Datepunkt steht auf 1, aber in HomeKit auf Automatisch also 3 -
@draexler Hast Du nun auch beide Punkte TargetHeatingCoolingState und TargetHeatingCoolerState im YAHKA gesetzt?
Du musst den Wert im iobroker TargetHeatingCoolingState bestätigt setzen.
Der CurrentHeatingCooling State kennt nur 0 oder 1. Das siehst Du nur oben im Titel in der App - ausgeschaltet oder heizen.
-
@draexler Wie gesagt unten musst Du über den TargetHeatingCoolingState Punkt setzen. Ich hab die Beschreibung geändert weil falsch. Die Bestätigung findet über TargetHeatingCoolerState zum TargetHeatingCoolingState statt und nicht wie fälschlich durch CurrentHeatingCoolingState bestätigt. Da beide gleich sind - setzt Du das also von außen alles über den TargetHeatingCoolingState Punkt.
Ich hab das mal durchgestrichen - was ich falsch geschrieben habe.
Wie gesagt wenn Du unterscheiden willst, ob es von der APP oder Adapter kommt, kannst Du mit dem ACK Flag wie unten beschrieben arbeiten.
-
@mickym Ja, das habe ich so gemacht. Bei dir verweisen aber auch TargetHeatingCoolingState und TargetHeatingCoolerState auf den gleichen Datenpunkt?
-
@draexler Ja damit spare ich mir die Bestätigung. Also wird der gleiche Datenpunkt entweder von der App oder dem Adapter (manuell) geändert.
-
@mickym Kann es sein das hier noch irgendwo ein Bug im Adapter ist? Auf deinem Screenshot ist etwas komisches zu sehen:
Und zwar unter der Stateauswahl, hast du anscheinend mal bei der Conversion was ausgewählt, weil da so ein komischer Abstand ist und auch noch ein rotes X... Greift da vielleicht noch irgendetwas? -
@mickym Ok, dann passt das auch, das habe ich auch so.
-
@draexler Du musst die Werte bestätigt setzen
Prüf ggf. auch den Typ des Datenpunktes (Zahl/Number)
-
@mickym Auch geprüft und in Ordnung. Wert wird bestätigt geschrieben.
-
@draexler Du musst TargetHeatingCoolingState Punkt beschreiben nicht CurrentHeatingCoolingState. Auf dem Screenshot ist es CurrentHeatingCooling State und schauen, dass er Typ Zahl ist.
-
@mickym Oh Mann bin ich vielleicht blöd.... Das wars. Damit wird das auch angepasst. Bist heute definitiv in meine Nachgebet dabei
Aber wenn ich Ehrlich bin verstehe ich dann noch nicht ganz den Sinn von dem "CurrentHeatingCooling State", aber vielleicht ist es auch schon ein bisschen zu spät zu heute
... Frage selbst beantwortet für "CurrentHeatingCooling State" 0=Aus 1=Heizen, also wie du auch schon beschrieben hast. Also wenn Ventilöffnung größer als 0 dann 1 setzen.
Aber wie kommt die Einfärbung grau/orange/grün im HomeKit zu stande? Grau ist aus, Orange ist heizen und grün?
-
@draexler Habe ich auf dem Bild beschrieben.
CurretnHeatingState ist nur 0,1 -also ausgeschaltet, heizen (2 kühlen ist nicht relevant).
Wie gesagt ich setze den Punkt nach Ventilöffnung: >0 = 1 keine Ventilöffnung =0=0
Neben dem Bild Status siehst Du CurrentHeatingState in der Übersicht noch hier:
CurrentHeatingState=1:
CurrentHeatingState=0:
-
@mickym: Habe deine Antwort oben selber ergänzt
Also Heizungssteuerung ist schon eine Wissenschaft für sich...Aber nochmal, vielen vielen Dank
Jetzt müssen noch die Blockly sprich die Logik gemacht werden, das wird auch noch eine Arbeit bei ca. 10 Räumen.
Aber ich denke der Thread wird einigen Personen weiterhelfen
-
@draexler sagte in Yakha Heizungssteuerung Homematic:
@mickym: Habe deine Antwort oben selber ergänzt
Also Heizungssteuerung ist schon eine Wissenschaft für sich...Aber nochmal, vielen vielen Dank
Jetzt müssen noch die Blockly sprich die Logik gemacht werden, das wird auch noch eine Arbeit
Ja ich hab halt alles mit NodeRed umgesetzt und der Flow ist ziemlich komplex geworden.
Aber ich denke der Thread wird einigen Personen weiterhelfen
und deswegen helfe ich ja auch immer gerne. Ich habe ja auch profitiert. Kühlung aus der App geschmissen. und auch selbst was gelernt.
-
@draexler sagte in [Gelöst] Yakha Heizungssteuerung Homematic:
Jetzt müssen noch die Blockly sprich die Logik gemacht werden,
Hallo @draexler könntest du mir zeigen wie das Blockly ungefähr aussehen müsste. Habe noch kein Plan. danke
-
@tt-tom Klar kein Problem:
Das Ding ist ziemlich groß, deswegen am besten das Blockly importieren und bei Fragen gezielt hier die Frage stellen.
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="comment" id="K7q]A3%f[x)(a0Nt-e.q" x="238" y="-187"> <field name="COMMENT">Homekit Boost</field> <next> <block type="on" id="91}$Ul]Y#D3AON:2b??$"> <field name="OID">0_userdata.0.Heizung.Gästezimmer.Boost-Homekit</field> <field name="CONDITION">true</field> <field name="ACK_CONDITION">false</field> <statement name="STATEMENT"> <block type="control" id="QX`s}9UL~(zdF7U3{|-d"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.BOOST_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="eAtN8pGCg]W-a;pYMPI2"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_wait" id="v{VerO4d$)}%lB7OQ*sU"> <field name="DELAY">300</field> <field name="UNIT">sec</field> <next> <block type="control" id="SWf2@gOkNmZ7V{XWm*MV"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Gästezimmer.Boost-Homekit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Nn^so7T72cLqzyC5s+H+"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="on" id="(/9I;T,9Q%ZnIO-UDkc^"> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.BOOST_MODE</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="update" id="ca*.Ll#8^)4SNe~?vNzQ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Gästezimmer.Boost-Homekit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="vOFjix*Z9[:+4?Mn|xSH"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_wait" id="Y(B@0M%+OUN+W64JN`%`"> <field name="DELAY">300</field> <field name="UNIT">sec</field> <next> <block type="control" id="=3S)y_rX?_!d4OhamrX*"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Gästezimmer.Boost-Homekit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ziNfXH2V5dbpvH/M/{YX"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="{/9Z+bPm(paDBjYk,%DR"> <field name="COMMENT">Homekit Stellantrieb</field> <next> <block type="on" id="X3AP.PC:DJ%g~qWCad%~"> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungsthermostat.VALVE_STATE</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="BQw,]_hK5R9OapP8B4lY"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="C^OIh%7z^cMg|C[9U%,R"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="_18R/bt~|w=g}{:oS6|D"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="EoBDeQ`+]QaoHK1`}@BP"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="n/TI/Fn|r4[ky2YQJLON"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Gästezimmer.Stellantrieb-Homekit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="P+lOe|rGce4=fZbHCtJA"> <field name="NUM">1</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="update" id="w+rp=;TdE)CviwYq1[5]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Gästezimmer.Stellantrieb-Homekit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="gT0IB@zN~SXU+nhov8fk"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="comment" id="0^mEd@d3l;K]X$kxH.M$"> <field name="COMMENT">Homekit Modus Empfang</field> <next> <block type="on_ext" id="66@|s$rZfW/5TV2_l;yQ"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="_9h,.d(u%0rx^;$uv.V3"> <field name="oid">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.CONTROL_MODE</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="EJpw,g9U[XBModmtQ#tV"> <field name="oid">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.SET_TEMPERATURE</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id=":2QmA%s!sYtUCP/NRWcd"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_operation" id="Xh)xK,C;hOXLmUY41Xy|"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="%$JOXbT*H9YS2Lv;2(lW"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="EQ(nV1-gX+C=+|;c81BN"> <field name="ATTR">val</field> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.CONTROL_MODE</field> </block> </value> <value name="B"> <block type="math_number" id="FPl[8l0:1sVijat,H|Q$"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="%UT5rlQ)XN)a^qgd88R@"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="=NB/FW;^4V)[Z.i,TG(Y"> <field name="ATTR">val</field> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.SET_TEMPERATURE</field> </block> </value> <value name="B"> <block type="math_number" id="F[wS];./4)$jw=a}$qam"> <field name="NUM">4.5</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id=";kO+53C]C:KO=tlx/NIl"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Gästezimmer.Modus-Homekit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Bc,p):k@*UT~}fxES;-e"> <field name="NUM">0</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="qu+)Zd4MM!l=*;oB]dh:"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="_U8U!JA|c~^J;vk4m?^^"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="m(rjxbyW|aPhfb9T#;eD"> <field name="ATTR">val</field> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.CONTROL_MODE</field> </block> </value> <value name="B"> <block type="math_number" id="9+Q;Add@KUn9BTSIR/0;"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="ERLG)?U.@0W0%%U3=|Aw"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="B3:trqaTIM?=vDzft^7#"> <field name="ATTR">val</field> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.SET_TEMPERATURE</field> </block> </value> <value name="B"> <block type="math_number" id="20,R;S(oXz#b!Awlpj%8"> <field name="NUM">4.5</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="update" id="0)I~/nEDwIyW!_OUn-+8"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Gästezimmer.Modus-Homekit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="2?#I4skG!GpvYo_@a%/n"> <field name="NUM">1</field> </block> </value> </block> </statement> <value name="IF2"> <block type="logic_compare" id="X4FjV~cT~o{y54Y;sco0"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=",iz/joSzkuri_fk]rMff"> <field name="ATTR">val</field> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.CONTROL_MODE</field> </block> </value> <value name="B"> <block type="math_number" id="7it)!MBC~h8V~!q.h/VN"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO2"> <block type="update" id="{yKZA?l!c1msTy][f:h/"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Gästezimmer.Modus-Homekit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="hVmcQ:ks^A_hQz[5@Z;y"> <field name="NUM">3</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="on" id="Fo7Ul9Xj|ZFt6fsnp[p]"> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.SET_TEMPERATURE</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">true</field> <statement name="STATEMENT"> <block type="controls_if" id="!sHU,d}$qKX,Aaa3zgRa"> <value name="IF0"> <block type="logic_operation" id="H*?rR{pQ`;[gR@AWKQG."> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="q#NUa.v7u5kY;Za1?mMA"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="uO}i#~iI-31.1P;rT8:D"> <field name="ATTR">val</field> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.SET_TEMPERATURE</field> </block> </value> <value name="B"> <block type="math_number" id="w5)]bU{]-ux%v`*5b-c#"> <field name="NUM">4.5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="cDJCK!B:HxX[NX`lA3c{"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="mGxL~Y0E%.;j@3:R^,.W"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Heizung.Gästezimmer.Modus-Homekit</field> </block> </value> <value name="B"> <block type="math_number" id="]ArDVHW[_srCj`;35a-X"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="zv?S_!+F%lf}Aw.=d]TG"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Heizung.Gästezimmer.Modus-Homekit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="2alU=YWgBVyE_%(e^q=."> <field name="NUM">1</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="comment" id="Rwb$,v1R{p:c8${T$*aD"> <field name="COMMENT">Homekit Modus Senden</field> <next> <block type="on" id="a1rN!_Y9kd!xy$L`mA%7"> <field name="OID">0_userdata.0.Heizung.Gästezimmer.Modus-Homekit</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">false</field> <statement name="STATEMENT"> <block type="controls_if" id="l-9n.7^=+V2[?)b@:~SA"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_compare" id="PRX~[wqF$Fl*pfK7T0ZQ"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="Gd@YKom7Okut_~~vc%~e"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id=":{:w/)+K7due@z4xkhqp"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="CZo5tW;|O!/6,+g=Q[Z`"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.MANU_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="SG)_G?VZf4`1.nZKI}{x"> <field name="NUM">4.5</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="]{ccDT9^2u#x!lqVt6!*"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="5qgb3xFrX)=(qxH~aFpN"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="yFNnoxf4;@pazdMM!)Fz"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="{+*z%zA,Mv$`7+.@^IjW"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.MANU_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="97(M#JspGbi4$DY9;q6,"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Zentrale_Parameter.Heizung.Eco_Temperatur</field> </block> </value> </block> </statement> <value name="IF2"> <block type="logic_compare" id="yUVdbvjlJy_DRty?Ww*9"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="JsUJh#W(Dv0A,UEeZ~XO"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id=")[m0vn#{h+UEw6}xF1c%"> <field name="NUM">3</field> </block> </value> </block> </value> <statement name="DO2"> <block type="control" id="M1x^RsE~7^JG1iq/qR!d"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Gaestezimmer.Heizung.Heizungssteuerung.AUTO_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="SUbK3T({t.aWHv*~l[v}"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>