Im letzten Beitrag habe ich ein wenig über meine Beweggründe, und über die Grundeinrichtung des System erzählt. Nun gehts in die Details: Was muss man in RedNode konfigurieren und programmieren, um die Geräte anzubinden:

Solltet Ihr den ersten Beirtag noch nicht gelesen haben, solltet ihr das unbedingt tun: Homatic CCU3 mit Google Assistent Basiseinrichtung

Ich habe zuerst folgendes ausprobiert:

In der Beispielkonfiguration, war unter Geräte bereits ein "RPC-Event-Node" von Homatic, den ich an meine Bedürfnisse angepasst habe (Doppelklick zum öffnen der Node-Einstellungen). Als Interface habe ich HMIP-RF ausgewählt, da ich ja Homatic-IP verwende. Als nächstes habe ich den "Room" meines Testgerätes gewählt (Schlafzimmer).

Als "Device Name" habe ich "Thermostat SZ" ausgewählt. Also das Thermostat im Schlafzimmer. Da oben bei Topic ja "${CCU}/${Interface}/${channelName}/${datapoint}" fehlt uns noch "ChannelName" und "DataPoint". Bei "ChannelName" habe ich nur einen zur Auswahl gehabt. Bei DataPoint habe ich mit ein wenig suchen "ACTUAL_TEMPERATURE" gefunden. "Emit only changed values" ist wichtig, da es sonst zu einem "zuspammen" des Endpoints kommt. "Emit cached value on start" sorgt dafür das ein Anfangswert übermittelt wird. Hier eine kurze Tabelle über die Datapoints von Homatic-IP:

Thermostat (HmIP-eTRV-2):

Datapoint Name: Beschreibung: Datentyp Zugriff
ACTIVE_PROFILE Das Heizprofil Ganzzahl 1-6 lesend, schreibend, Ereignisse
ACTUAL_TEMPERATURE Die aktuelle Temperatur Kommazahl lesend, Ereignisse
ACTUAL_TEMPERATURE_STATUS Status der Temperatur: normal(0),unbek.(1),ueber(2),unter(3)  option 0-3 lesend, Ereignisse
BOOST_MODE Boost Modus Wahrheitswert (0/1) schreibend, Ereignisse
BOOST_TIME Dauer des Boosts Ganzzahl 0-2048 lesend, Ereignisse
CONTROL_DIFFERENTIAL_TEMPERATURE TemperaturOffset Ganzzahl -10-10 schreibend
CONTROL_MODE Betriebsmodus: Auto(0), Manu(1), Party(2), Boos (3) option 0-3 lesend, Ereignisse
DURATION_UNIT ??Dauer, Zeiteinheit sec(0), min(1), Stunde(2) option 0-2 schreibend
DURATION_VALUE ??Dauer Ganzzahl 0-16343 schreibend
FROST_PROTECTION Frostschutz Wahrheitswert (0/1) lesend, Ereignisse
LEVEL ??? ?? ???
LEVEL_STATUS ??? ?? ???
QUICK_VETO_TIME ??? Ganzzahl 0-2048 lesend, Ereignisse
SET_POINT_MODE ??? Ganzzahl 0-3 lesend, schreibend, Ereignisse
SET_POINT_TEMPERATURE Setzen der Temperatur Kommazahl 4,5-30,5 lesend, schreibend, Ereignisse
SWITCH_POINT_OCCURED ??Punkt der Programmumschaltung Wahrheitswert (0/1) lesend, Ereignisse
VALVE_ADAPTION ?? Adaptierungsfahrt, action? Wahrheitswert (0/1) lesend, schreibend, Ereignisse
VALVE_STATE Status Ventilöffnung Ganzzahl 0-99 lesend, Ereignisse
WINDOW_STATE Fensterstatus Wahrheitswert (0/1) lesend, Ereignisse
PARTY_.... Diverse Einstellungen für den Partymodus - -


Die Temperatur wird ganz normal als $msg.payload ausgegeben.  Nun habe ich den "Google Home Response"-Knoten in das Diagramm gezogen. Dieser erfordert als Eingabe aber:

{  payload: {
      params: {
         thermostatTemperatureAmbient: <temp>
      }
   }
};

Also habe ich einen "function"-Knoten hinzugefügt, und mit folgendem Code gefüttert:

temp = msg.payload
msg = {
        payload: {
          params: {
              thermostatTemperatureAmbient: temp
          }
        }
      };
return msg;

Die Werte welche "Google Home Response" haben möchte kann man in der Anleitung einsehen: https://googlehome.hardill.me.uk/docs
Im "Google Home Response" muss natürlich noch das Device eingestellt werden. Das ist nicht das von Homematic, sonder das welches Ihr bei hadill konfiguriert habt.
Zu guter Letzt habe ich noch einen Debug-Knoten zum testen hinzugefügt..

Hier noch ein Screenshot über die konfigurierten Nodes:

Weiter gehts im nächsten Beitrag: Homatic CCU3 mit Google Assistent: Befehle von Google empfangen

Letzter Beitrag in dieser Serie: Homatic CCU3 mit Google Assistent Basiseinrichtung


Keine Kommentare

Kommentar hinterlassen

Als Antwort auf Some User