Daikin - ESP32 Faikout Modul

die 5 GPIOS bleiben vom Namen immer xgpio1 bis xgpio5 auf Mqtt-Ebene und kannst Du oben lesend den status neben dem Status topic nachvollziehen:

image

xgpio1 = 1% etc

schreiben genau wie Du es machst übers command (Faikout standard).

Das klingt seltsam. Kannst Du mir noch die genaue Konfiguration von GPIO3 zeigen?

Lass uns aber das Bugfixing in den Chat verschieben und wenn alles funktioniert, melden wir es hier.

Mir ist aufgefallen, dass sich die Zeile Faikouttest sowie die status unter dem xgpio erst nach ca. 3 Minuten aktualisiert hat. Ich probiere das mal morgen aus, wenn die Daikin angeschlossen ist. Sicherlich läuft dann die MQTT Kommunikation schneller, da ständig neue Werte kommen (BLE, etc.)

Ich hab den "Bug" gefunden. Für Digital Inputs habe ich kein Monitoring implementiert. Die 3 Minuten-Änderung ist Zufall, da dort noch andere Dinge passiert sind.

Der Rest funktioniert bereits Eventgetriggert oder gemonitort im 1Sek-Loop wie die ADC mit Änderungsschwelle. Nur bei den Binary- Inputs fehlt das. Update kommt.

Edit: v1.2 Ist Online, die Mqtt Meldung bei Änderung eines Digital Inputs darf nun maximal 1 Sekunde dauern.

Edit2: v1.3 ist nun auch Online. Die zusätzlichen GPIOs werden jetzt, wenn sie konfiguriert sind, über die HA Integration automatisch gemeldet.

1 „Gefällt mir“

Erster Test mit verbundener Daikin einwandfrei. Danke & gute Arbeit @WattJetzt.

In dem Zuge habe ich auch den Öffnungswinkel der vertikalen Klappe der Perfera angepasst. Somit öffnet die Klappe ca. 1cm weniger und ich kann über ioBroker die Klappe sehr weit auf höchst mögliche Position verstellen.

So sieht es aus: Einfach drucken und zwischen den Stellmotor und dem Gehäuse einlegen.

Ansonsten funktioniert die Klappe wie immer.

Wer Interesse hat gerne melden. Hier kann ich wohl keine Step Datei hochladen.

Anleitung für Perfera Deckengerät:

  1. Deckel runter
  2. über dem Bewegungsmelder eine Schraube raus
  3. den ganzen rechten Block mit Zuleitung und Elektronikbox nach oben aushängen
  4. Eine Schraube vom Stellmotor raus
  5. Stellmotor entnehmen
  6. Die 3D Druck-Scheibe einlegen
  7. Zusammenbauen

Hat jemand mit dem Faikin eine temperaturbasierte Sprachsteuerung per Homeassistant realisiert? Per Homeassistant Cloud geht die Sprachsteuerung (Ein, Aus ,Temperaturabfrage etc) super schnell, allerdings habe ich wie gesagt Probleme mit der Temperaturübergabe per Sprache weil er das Target nicht findet. Das wäre noch der letzte Schritt nachdem die Regelungsscripte vom letzten Jahr so perfekt funktionieren.

Hallo zusammen. Wie vielleicht mehreren bekannt, nutze ich ioBroker für die Steuerung meiner Faikout-Module und habe den MQTT-Broker mittlerweile zu Home Assistant umgezogen und somit ist ioBroker der MQTT-Client. Mir ist es nicht mehr möglich, die Klappen anzusteuern, also swingh und swingv über die bestehenden Kommandos. Über MQTT Explorer kann ich es machen, nur nicht über ioBroker oder Home Assistant. Hat da jemand eine Idee, was ich wo ändern muss oder wie die Befehle über HA lauten?

So hat es mit iobroker letzten Winter funktioniert:

und mit diesem Befehl funktioniert es weiterhin im MQTT Explorer: Faikout/Faikin_EG_WZ {"swingh": false} oder eben true

Frage 2: Zusätzlich hätte ich gerne den Winkel der Klappe im HomeAssistant, also anglev und angleh. Muss ich das irgendwo im Faikout separat einstellen?

Ich glaube das musst du extra via MQTT vom Faikout-Modul abfragen.
Zumindest bekommt man darüber die Werte (wobei nicht jede Anlage das überhaupt entsprechend sinnvoll zur Verfügung stellt)

Hatte da nur lose mal reingeschaut, vielleicht hat noch wer anders mehr Erfahrung damit.

Versuche es mal so, deine mqtt Instanz stimmt? (mqtt.1) oder bist du auf den mqtt-client adapter gewechselt?

nö das kommt per standard, wenn es die anlage denn ausgibt. Bin fast sicher, dass es in der HA Integration aber nicht mit drin ist und so muß Du manuell dir das rauswurschteln aus dem JSON.

Befehl gefunden, aber nur über HA Dashboard - HA ist aus meiner Sicht ein System für Anfänger - aber egal.

Befehle sind in Kombination mit HA wie folgt, wenn HA der MQTT Broker ist:

Alle Befehle sind:

  • H für Bewegung horizontal
  • V für Bewegung vertikal
  • H+V für Bewegung beider Klappen
  • C für Comfort (bekomme ich aber dann nicht mehr aus)

Positionen sind via MQTT auslesbar über:

Wie das im HA funktioniert weiß ich nicht. Wird jedenfalls nicht automatisch aboniert. @WattJetzt Da hast wohl Recht, sicherlich über separaten Helfer

Somit kann ich die Klappe wieder auf Position fahren können. War die letzten Winter perfekt. Nachts, keiner im Raum: Bewegung, und morgens auf höchste Position fahren. Das war sehr gut

Interssant, dass sich die Ansteuerung des Faikouts ändert, wenn die HA Integration aktiv ist, ist mir neu.

HA ist bei mir nur eine Testumgebung, aber bist Du sicher was Du da schreibst? In HA läuft doch als Add-On auch nur ein Mosquitto Mqtt Broker den man genauso einzeln irgendwo installieren könnte. Genauso für IOB.

Falls Du so mal unzuverlässige Logiken bzw. seltsames Verhalten der Logiken feststellst, hast Du Race Conditions generiert beim zerlegen von JSON über Blocklys in der Art. Ist stark zu empfehlen das so nicht zu tun sondern über Alias inkl Aliaskonvertierung.

@WattJetzt Ich bin kein Profi, aber ich weiß bei meinen 9 Anlagen, dass letztes Jahr alles funktioniert hat in Kombi mit iobroker inkl. MQTT Server in iobroker.

So wie ich das verstanden habe, seit ich Home Assistant parallel betreibe und dort den MQTT Broker aktiviert habe, hat das Faikout die Befehle geändert, als Climate Integration.

Bei mir in HA auch nur eine Testumgebung, wobei ich versuche von iobroker zu HA zu wechseln, oder den Parallelbetrieb beizubehalten.

Race Conditions? nie gehört. Bisher hat alles so funktioniert wie ich das zerlege im Blockly. Habe auch deine XGPIOs so eingebunden. Funktioniert super. Mit meiner Art kann ich mit extrem wenig Arbeit den Pfad von etlichen Blöcken ändern und so direkt alle 9 Anlagen anpassen (Notepad++).

Interessant. Hab ich wieder was zum Testen und "Spielen". Ich hatte es bisher so verstanden, dass die Climate Integration in HA als "Übersetzer" für den HA-Standard funktioniert und HA damit weiß, wie mit dem Mqtt Gerät umzugehen ist. Die rohe Mqtt Kommunikation wäre davon unberührt. Aber mal schauen.

Du setzt einen Trigger auf Änderung von „status”. Bei jeder Änderung läuft die Kette dahinter durch und schreibt die Attribute einzeln in eigene Datenpunkte. Bei wenigen Attributen fällt das nicht auf. Mit mehr Attributen oder weiteren Blockly-Skripten auf demselben Trigger ist die Reihenfolge der Updates aber nicht garantiert. Eine Logik, die mehrere abgeleitete Werte nutzt, kann dann zum Teil neue und zum Teil noch alte Werte aus dem vorherigen Status sehen. Das sind die „seltsamen” Effekte, die man später schwer nachvollziehen kann. Alias mit Konvertierung vermeidet das, weil dort kein Skript dazwischen hängt und jeder Wert direkt aus demselben Status-Update abgeleitet wird.

Das Aufsetzen und insbesondere das Austüfteln insbesondere der Aliaskonvertierung für den Lese- und Schreibvorgang je Alias ist zugegeben Arbeit. Wenn man aber die Standardkommunikation (unveränderte Mqtt Kommunikation) vom Faikout nutzt, dürfte das hier (siehe Link) schon praktisch 99% der Arbeit erledigen. Man erhält einen Satz Objekte die man lesen und schreiben kann und braucht sich um die Mqtt-Kommunikation (JSON zerlegen etc.) keine Gedanken mehr machen.

Das Skript ist offen, jeder kann nicht vorhandenen Blödsinn identifizieren und es wird nur einmal ausgeführt dann gestopt und/oder gelöscht. Vorher die 3 Konfigurationsparameter (IP, mqtt Instanz und Name) eintragen und man erhält unter dem Objekteordner "Alias" und Unterordner "Name") den Kompletten Satz an Datenpunkten (oder wenigstens 99%). Jedenfalls sind genug Beispiele drin um daraus wirklich was mitzunehmen. Wenn es nicht gefällt, den Unterordner "Name" im Aliasverzeichnis komplett löschen, sowie das Skript und nichts ist passiert. -> Ein Angebot ...

Für weitere Anlagen/Faikouts, einfach die 3 Parameter anpassen und nochmal ausführen und es gibt dafür einen passenden Unterordner.

1 „Gefällt mir“

Habs mal mit einer Anlage getestet. Ja, gefällt mir. Ich habe aktuell für jedes Objekt einmal lesen und einmal schreiben. Könnte ganz gut sein, wenn ich damit meine Zeitpläne der Daikins noch funktionell habe, aus erstem Gedanken sollte das aber mit etwas Aufwand umbaubar sein. Klasse :slight_smile:

1 „Gefällt mir“

Danke gerne Feedback für eine v0.2 :slight_smile:

angleh ist nicht drin, bereits notiert und ein restart über mqtt kann auch sehr helfen wenn die weboberfläche mal wieder hängt :wink:

und die xgpios könnten doch auch in der Liste mit rein, also händisch oder?

Kann ich dir gerne später geben.

Mittlerweile v0.4 Online:

Warum?

Ich habe aktuell bei mir in der Übergangszeit festgestellt, dass die minimale Modulation der Daikin (12Hz Kompressorlauf) noch zuviel für den Raum ist. Der Raum überhitzt und die Anlage taktet.

Um bei überhitzten Raum die Anlage noch verlässlicher zu beruhigen, viel mir immer wieder der Setpoint der Daikin negativ auf. Definiert durch sonst gut funktionierendem heatback-Parameter = 3°C ging so der Setpoint natürlich nicht aufs Minimum zurück. Daher wollte ich in meinen Bedarfsregelskript durch eine Überhitzungserkennung diesen Parameter aktiv modifizieren.

Das ist nun auch mit dem Alias-Generator möglich, da falls aktiviert nun auch folgende Konfigurationsparameter (einzeln selektierbar) des Faikout in IOB angelegt werden können. Diese sind dann direkt schreibbar.

const CONFIG_FIELDS_ENABLE = {
    heatback:   true,   // Heat pull-back (°C)          
    heatover:   true,   // Heat push-over (°C)          
    coolback:   true,   // Cool pull-back (°C)          
    coolover:   true,   // Cool push-over (°C)          
    tcontrol:   true,   // Control-Timeout (s)          
    thermref:   false,  // Inlet/Home-Blend (%)         
    tmin:       false,  // Min-Temperaturgrenze (°C)
    tmax:       false,  // Max-Temperaturgrenze (°C)
    tcoolmin:   false,  // Min-Temperaturgrenze Kühlen (°C)
    theatmax:   false,  // Max-Temperaturgrenze Heizen (°C)
    frosttemp:  false,  // Frostschutztemperatur (°C)
    minoutside: false,  // Min-Außentemperatur für Betrieb (°C)
    switchtemp: false,  // Schaltpunkt-Offset (°C)
    pushtemp:   false,  // Push-Offset (°C)
    reporting:  false,  // Status-Reportintervall (s)
    lockmode:   false,  // Heiz-/Kühlmodus in Auto sperren
};

Das Ergebnis gefällt mir schon mal gut (braune Kennlinie). Bei erkannter Überhitzung (Sollwert + Totband + 0,1°C) wird hier nun 4x der Daikinsetpoint nicht nur minimal auf 19°C gesetzt, sondern durch heatback-Anpassung (=6°C) auf 17°C (Minimum) bis die Raumtemperatur wieder passt und der Schutz revidiert wird. Der Lüfter zuckt zwar noch, aber der Kompressor läuft nicht mehr an:

Ich habe nun die Spracherkennung installiert. Als Basis läuft die Demand-Steuerung vom letzten Jahr im Hintergrund. Die Temperaturen werden per Sprachsteuerung an das HA-interne Thermostat und dementsprechend an das Faikout gesendet. Hierfür wurden 2 yaml-Dateien manuell angelegt. Die Thermostat Entitäten (climate.ID_hvac) haben bei mir die Faikout ID's - das kann auch anders sein. Wichtig ist noch, dass die Thermostate den Räumen zugeordnet sind.

/homeassistant/custom_sentences/de/perfera.yaml

language: "de"
intents:
  PerferaSetzen:
    data:
      - sentences:
          - "(stell|setze) [(die |das )]{geraet_typ} {geraet} auf {temperatur} [Grad]"
          - "(stell|setze) {geraet} auf {temperatur} [Grad]"
          - "(mach|machs) (es )?(im |in der ){geraet} {temperatur} [Grad]"
  PerferaAusschalten:
    data:
      - sentences:
          - "(schalte |mach )[(die |das )]{geraet_typ} ((im |in der ){geraet} )aus"
          - "(schalte |mach )((die |das ){geraet} )aus"
lists:
  geraet_typ:
    values:
      - "klimaanlage"
      - "heizung"
      - "klima"
  geraet:
    values:
      - in: "wohnzimmer"
        out: "climate.FaikoutID1_mqtt_hvac"
      - in: "kinderzimmer"
        out: "climate.FaikoutID2_mqtt_hvac"
      - in: "schlafzimmer"
        out: "climate.FaikoutID3_mqtt_hvac"
  temperatur:
    range:
      from: 10
      to: 30
  1. /homeassistant/intent_script.yaml
intent_script:
  PerferaSetzen:
    variables:
      topics:
        "climate.FaikoutID1_mqtt_hvac": "command/FaikoutID1"
        "climate.FaikoutID2_mqtt_hvac": "command/FaikoutID2"
        "climate.FaikoutID3_mqtt_hvac": "command/FaikoutID3"
      raeume:
        "climate.FaikoutID1_mqtt_hvac": "Wohnzimmer"
        "climate.FaikoutID2_mqtt_hvac": "Kinderzimmer"
        "climate.FaikoutID3_mqtt_hvac": "Schlafzimmer"
    action:
      - action: mqtt.publish
        data:
          topic: "{{ topics[slots.geraet] }}"
          payload: '{"autot":{{ slots.temperatur | int }}}'
          qos: 0
          retain: false
    speech:
      text: "{{ raeume[slots.geraet] }} auf {{ slots.temperatur }} Grad gestellt."

  PerferaAusschalten:
    variables:
      topics:
        "climate.FaikoutID1_mqtt_hvac": "command/FaikoutID1"
        "climate.FaikoutID2_mqtt_hvac": "command/FaikoutID2"
        "climate.FaikoutID3_mqtt_hvac": "command/FaikoutID3"
      raeume:
        "climate.FaikoutID1_mqtt_hvac": "Wohnzimmer"
        "climate.FaikoutID2_mqtt_hvac": "Kinderzimmer"
        "climate.FaikoutID3_mqtt_hvac": "Schlafzimmer"
    action:
      - action: mqtt.publish
        data:
          topic: "{{ topics[slots.geraet] }}"
          payload: '{"power":false}'
          qos: 0
          retain: false
    speech:
      text: "Klimaanlage {{ raeume[slots.geraet] }} ist aus."

In die configuration.yaml muss noch folgener Eintrag:

intent_script: !include intent_script.yaml

Bzgl. der Sprachsteuerung (EIN/AUS/TEMPERATUR) bleibe ich nach einer Woche testen wieder bei Siri/Homekit. Siri hat weniger Probleme mit fremden Stimmen (TV) und weiß auch über die Homepods in welchem Zimmer ich mich befinde (ohne weiteren Steuerungsaufwand). Die Steuerung der Temperatur und Ein/Aus über das Faikout geht ganz hervorragend über die HA-Homekit-Bridge. Mit den neuen Tessera-4"Guition Displays hat man mittlereile auch gute und günstige Direktsteuerungskacheln (Thermostat oder Power on/off)

Das Demand-Skipt vom letzten Jahr läuft im Hintergrund. Es ist etwas seltam, aber nur mit Einstellungen heatover -1 und heatback +3 laufen meine 4 Anlagen wirklich gut und modelieren auch deutlich unter 100W ohne auszugehen.

Hört sich interessant an. Habe keinen ioBroker. Nutze Homeassistant und Node-Red.

Kannst Du mehr zu Deiner Lösung erzählen? Verstehe, dass Du zwar Auto Mode von Faikout nutzt, aber den Vorgabewert für den Auto Mode modifzierst. Und die Parameter heatback, heatover, coolbackm coolover und tcontrol?

Habe gestern mein erstes Faikout-Modul installiert. Mit Xiaomi Thermometer (mit ATC geflasht). Generell kann man darüber fast alles wie in der Onecta-App (bis auf Fußboden-Modus des FVXM-Innengerätes) einstellen.

Danach habe ich den Auto Mode probiert. War enttäuscht und habe es bisher nicht hinbekommen den Auto mode ohne Takten laufen zu lassen. Mein Problem mit dem FVXM ist, dass dieser ohne Auto Mode den Raum ca. 3 Grad heißer erhitzt als man einstellt. Wenn ich also in Onecta oder Faikout ohne Auto Mode 19 Grad einstelle, habe ich ca. 22 Grad im Raum, ohne dass er taktet. Obwohl seltsamerweise in der Onecta App die 22 Grad auch angezeigt werden. Und meist mit relativ geringem Verbrauch unter 200 Watt.

Habe keine Möglichkeit gefunden das bei Faikout zu kompensieren ohne, dass er taktet. Wenn ich den Auto Mode nutze fängt er mit viel zu hoher Temperatureinstellung an, obwohl dachte das mit heatover = -3 dies kompensieren zu können. Statt aber mit 19 Grad zu beginnen, schickt der Automode an die FVXM 21 Grad. Also viel zu hoch.

Insofern würde mich interessieren wie Deine Regelung genau aussieht. Welche Parameter setzt Du wie, um Dein Ergebnis hinzubekommen?