NEWS
[Gelöst] Yakha Heizungssteuerung Homematic
-
@mickym: Das sieht schon mal hilfreich aus Vielen, vielen dank dir.
Aber was ist jetzt der Unterschied zwischen "TargetHeatingCoolingState" bzw. "CurrentHeatingCoolingState"?
Oder kannst du da noch einen Screenshot machen von den Services Einstellungen? Also die Einstellungen:@Alle: Gibt es den eine Möglichkeit im HomeKit nur AUS, HEIZEN und Automatisch zu haben?
Irgendwie hat es ja der RaspberryMatic Adapter ja auch geschafft
Ich denke mal es geht über diese "validValues" Einstellungen... Aber da sagt der Adapter im HomeKit das er nicht reagiert.
-
@mickym: Und wie hast du das mit der Batterieprüfung gemacht? Im Internet stehen Anleitungen das da noch ein Script reinmuss. Aber sowas lässt sich halt dann immer schwer testen, ob es dann wirklich funktioniert
-
@draexler So ich hab auch bissi rumprobiert und es tatsächlich hinbekommen.
Grundsätzlich funktioniert es bei doch - das Kühlen auszuschalten - du musst nur bei beiden die validValues einschränken also bei bei Target und CurrentHeatingCooling State.
Du warst dann schon auf dem richtigen Weg - und ich habe auch wieder was gelernt:
Meines Erachtens ist da auch ein Bug in dem Adapter.
Ich habe jetzt noch ein Custom Charakteristic TargetHeatingCoolerState mit den gleichen Werten wie TargetHeatingCoolingState eingefügt
- lässt man eines von beiden weg - dann hat man ein Problem-
Grundsätzlich ist es so dass in dem TargetHeatingCooling State Datenpunkt das geschrieben wird, was Du über die AppleApp eingibst. In dem CurrentHeatingCooling State gibst Du dann aktiv Rückmeldung, welchen Modus das System gerade hat (also Rückmeldung vom Homematic System). Beide Punkte müssen übereinstimmen, sonst hast Du permanent das Drehrädchen in der App und den CurrentHeatingCoolingState mit ACK-Flag setzen. Dort steht also 0 für ausgeschaltet oder 1 für heizen. (wie gesagt ich setze das - nach Ventilstellung - 0= ausgeschaltet, inaktiv - >0 = heizen)Mit den Einstellungen habe ich nun die Kühlung wegbekommen:
Den Batterieservice habe ich einfach hinzugemacht. Da bei dem MAX-System (weiß nicht wie das beim Homematic ist) nur low oder OK im Datenpunkt auftaucht - habe ich einfach den Batterielevel bei low auf 20% genommen und gemappt.
Wahrscheinlich braucht man das level gar nicht sondern nur low und nicht low:
-
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