NEWS
[Gelöst] Yakha Heizungssteuerung Homematic
-
Hi Zusammen,
wer von euch hat eine "Heizungssteuerungsgruppe" von Homematic vernünftig in den Yakha Adapter einpflegen können, damit der Auto Modus, MANU Modus, OFF und der ganze Rest richtig funktioniert?
Es gibt zwar diesen extrem langen Thread für den Yakha Adapter, aber dort was zu finden ist fast unmöglich bzw. schon uralt... Und über die Suchmaschine findet man auch nur Hauptsächlich einfache Leuchten Einbindungen.Ich nutze aktuell den HAP Homematic Adapter auf der Raspberrymatic und dort ist es richtig schön implementiert.
Aber das Zielbild ist alles soweit möglich an einer Stelle zu haben -> sprich ioBroker.Wäre super wenn hier jemand eine Lösung hätte
-
@draexler Also ich habe noch die MAX Heizung - ist aber von der Funktionalität von Homematic identisch.
- Ich habe alle Datenpunkte der Heizung für YAHKA als eigene Datenpunkte unter 0_userdata.0 eingetragen und dann über meine Logikmaschine - bei mir Node Red für die MAX Befehle umgesetzt.
Mit diesen 4 Punkten funktioniert das bei mir soweit ganz gut:
also
-
Die Temperatur über das Rädchen in 0,5°C Schritten über YAHKA einzustellen ist ja eher banal und wird in die desiredTemperature übertragen.
-
Etwas komplizierter sind die Modi:
Für boost habe ich einen extra Schalter im Homekit - als Switch Service im YAHKA
Das geht somit auch mit siri - wenn ich sage "Siri schalte den Boost im Wohnzimmer ein"
- Für die anderen Modi (0-4 im HomeKit) habe ich folgendes gewählt:
aus = ist tatsächlich OFF
Kühlen = auto
Heizen = manual
Automatisch = autoMan kann natürlich auch Kühlen auf OFF stellen. Im Prinzip ist Kühlen bei einer reinen Heizung halt Schwachsinn.
- Den CurrentCooling State setze ich nach Ventilöffnung.
Somit ist die Heizung Inaktiv (grüner Punkt) wenn Ventilöffnung 0 und auf heizen und orange sobald das Ventil geöffnet ist.
Du kannst das sicher auch mit Blockly machen - aber wichtig ist, dass Du für YAHKA bzw. AppleHome eigene Datenpunkte verwendest, damit Du flexibel über die verschiedenen Steuerungsmodi Deine korrekte Homematic Befehle absetzt.
-
@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?