Hop til indhold
  • 0

Google Home - IHC varmestyring


Kandersen
 Share

Spørgsmål

Inspireret af Zafranski´s indlæg fra August 2019 om Roth varmestyring, så kommer her en lille hurtigt vejledning til, hvordan man får IHC varmestyring til at virke med openHAB2 og Google Home. 
Det forudsætter at man har opsat sin openHAB2 med forbindelse til myopenhab.org cloud. openHAB skal/bør helst være version 2.5. eller nyere. 
Det er IKKE tiltænkt som en guide til openhab generelt. Det forudsætter derfor man har en vis viden om things og items, eller i det mindste kan gennemskue det grundlæggende.

Der er brugt en temperatur & fugt sensor fra Zigza, men en "original" IHC gør præcis det samme. 
Der er brugt IHC avanceret varmestyrings blok 5.2.05.c på en HW6.2 controller med firmware 2.8.4.

Bemærk - Det er opsat med en things fil, fordi man skal bruge setpunkt i varmestyrings funktionsblokken. Setpunktet er ikke tilgængelig via produktet, desværre. Det er muligt man kan hekse noget på een eller anden måde. Spørg en IHC ekspert :-)


ihc.things:

ihc:controller:elko [ hostname="IP", username="username", password="password", timeout=10000, loadProjectFile=true, createChannelsAutomatically=true ] { 
    Channels:

// Stort bad - Rum	
       Type number   :stortbad_temperatur_fb       "Stortbad Temperatur"                  [ resourceId=7986196, direction="ReadOnly" ]
       Type number   :stortbad_temperaturSet_fb    "Stortbad Temperatur setpunkt"         [ resourceId=7989780 ]
       Type number   :stortbad_fugtighed           "Stortbad Fugtighed"                   [ resourceId=13699623, direction="ReadOnly" ]
       Type number   :stortbad_sensorfejl          "Stortbad sensorfejl"                  [ resourceId=7989522, direction="ReadOnly" ]
       Type switch   :stortbad_telestat            "Stortbad Telestat"                    [ resourceId=6144859, direction="ReadOnly" ]
 }

Forklaring:
things filen gør intet andet end, at den laver dels laver selve bridge (broen) mellem openhab og IHC controlleren.
Og nedenunder defineres channels manuelt, ud fra de resourceIDére som man skal bruge (dem der står i [  ] klammerne). direction=ReadOnly" giver sig selv. OpenHAB læser kun fra IHC controlleren på disse resourceIDére. Der hvor der ikke er sat noget direction, der er det ReadWrite, fordi det er default. Og det er netop det man skal bruge til setpunktet, for at man kan skifte temperaturen (setpunktet) på en IHC "termostat" fx via Google Home. 
 
ihc.items:

//Stort Bad
Group     g_Stortbad_TSTAT           "Stort Bad Termostat"                                                                  [ "Thermostat" ]
Number    stort_bad_Temperature      "Stort Bad Temperatur [%.1f °C]"                 <cu_heating>     (g_Stortbad_TSTAT)   [ "CurrentTemperature" ]                    { channel="ihc:controller:elko:stortbad_temperatur_fb" }
Number    stort_bad_Tempsetpunkt     "Stort Bad Temperature setpunkt [%.1f °C]"       <temperature>    (g_Stortbad_TSTAT)   [ "homekit:TargetTemperature" ]	        { channel="ihc:controller:elko:stortbad_temperaturSet_fb", autoupdate="false" }
Number    stort_bad_fugt             "Stort Bad Fugtighed [%.0f %%]"                  <Humidity>       (g_Stortbad_TSTAT)   [ "CurrentHumidity" ]                       { channel="ihc:controller:elko:stortbad_fugtighed" }
String    stort_bad_Mode             "Stort Bad Mode [%s]"                                             (g_Stortbad_TSTAT)   [ "homekit:TargetHeatingCoolingMode" ]
Switch    telestat1_stort_bad        "Stort Bad Telestat [%s]"                        <cu_switch>      (g_Stortbad_TSTAT)                                               { channel="ihc:controller:elko:stortbad_telestat" }

Forklaring:
Først skal der laves en Group item. Den hedder i det her tilfælde g_Stortbad_TSTAT. Og den skal bruge Google Home tagget [ "Thermostat" ]. Denne group fortæller Google, at der er tale om en termostat.
Derefter tilføjes de items som skal bruges til samme group for at Google kan forstå og arbejde med denne termostat korrekt. Dvs items som har disse tags:
"CurrentTemperature", den reelle temperatur. 
"Homekit:TargetTemperature", der reelt er setpunktet. <- (Derfor skal den channel være ReadWrite) 
"Homekit:TargetHeatingCoolingMode" som gør det, at den fortæller hvilken "mode" termostaten er i.

Normalt vil man have en "rigtig" termostat som sender et nummer, alt afhængig af om den er heat, cool, ON, OFF eller fx Auto. 
Sådan en funktion har vi ikke med IHC sensorene og varmestyringen, da den reelt "bare" er sensorer/følere, der sender data retur til controlleren, så så kan tænde/slukke en telestat. Derfor er der ikke linket til nogen IHC resourceID for Mode status. Men vi kan sagtens bruge Mode alligevel, og ret smart endda. 

Det gør vi ved at bruge en String type item til "Homekit:TargetHeatingCoolingMode". Ved brug af den og telestaten fortæller vi simpelthen Google om "termostaten" varmer eller ikke-varmer(køler). (heat eller cool). Simpel logik.   

Men først et par billeder af "termostaten i Google Home, når det er sat op, og man har synkroniseret sine enheder. Det ser således ud i Google Home (virker også i Google Nest Hub):

Screenshot_20200116-225616_Home.thumb.jpg.339ecf0c53bbeb5c5505f9d6c0698068.jpg Screenshot_20200116-225702_Home.thumb.jpg.a7f74ecc6ed5c7d4c9ae62558e1ec383.jpg

Bemærk, det er samme termostat men den er rød på det ene billede og blå på det andet. Det er her Mode og String type item og en simpel rule kommer ind.. 
Den aktuelle temperatur aflæses under teksten "Indendørs". På begge billeder er aktuelle temperatur altså 22.5. Men dreje knappen er den man stiller setpunktet på.
På det røde billede er setpunkt sat til 23grader. Men da temperaturen kun er 22.5 grader, så er den altså i varmetilstand. Telestaten er tændt.
På det blå billede har jeg skruet setpunktet ned til 22 grader. Altså mindre end den egentlig temperatur. Og derfor er den i køletilstand. Telestaten er slukket.

Det her er ikke noget Google selv finder ud af.. Det laves via en simpel rule som benytter telestaten til at fortælle Google, via Mode, hvad status er. Den ser således ud:

rule "heatingmode stortbad"
when
     Item telestat1_stort_bad changed
then
     if (telestat1_stort_bad.state.toString == "ON" ) {
        stort_bad_Mode.postUpdate("heat") } 
     else {
         stort_bad_Mode.postUpdate("cool") }
end

Hvis man har en smule indblik I openhab, så vil man lyn hurtigt gennemskue denne rule. 
Den betyder simpelthen:

Hvis telestat1 er ændret
  så
       Hvis den er ændret til ON
       Sendes "heat" til item stort_bad_Mode
ellers
       Sendes "cool" til item stort_bad_Mode
end

Kort sagt - Er telestaten ON, så sættes Mode til "heat" og ellers er telestaten OFF, og Mode sættes til "cool". 

Det er netop det der trigger Google Home termostaten - "heat" så er den rød, "cool" så er den blå.
Og dette kan vi gøre, fordi det er en String item type. 
 
Selve telestaten styres helt normalt via IHC og setpunktet i varmestyringsblokken. Og fordi vi har ReadWrite på setpunktet, så kan vi også skrue op/ned for setpunktet i IHC varmestyringen via Google Home. 

Så nemt er det faktisk.

Det virker i Google Home app (både Android og IOS). Det virker med Google Nest Hubs, (dem med skærm). Og det virker med stemmekontrol. 
Spørger jeg fx Google "Hey Google, hvad er temperaturen i stort bad" - Så får jeg svaret 22.5 grader. 
Hvis jeg beder Google om at ændre termostaten til 23 grader, så gør Google også det, og setpunktet ændre sig til 23 grader i IHC varmestyrings blokken.
Fordi det er en temperatur og fugt sensor, så kan jeg også sige, "Hey Google, hvad er luftfugtigheden i stort bad". Og Google svarer retur, hvad luftfugtigheden er. 

Man kan IKKE se luftfugtigheden angivet nogle steder.. Der er faktisk ingen der kan forklare, hvorfor man ikke kan se det. Men det er en feature som Google åbenbart ikke mener er nødvendig at kunne se, men som man skal spørge ind til.. Lidt mystisk holdning, men det er altså Google´s skyld. 

Thats it.. Håber det kan bruges til noget. 
Spørgsmål - Så bare skyd løs.

 

Link til kommentar
Del på andre sites

14 svar på dette spørgsmål

Recommended Posts

  • 0
19 timer siden, Lars Jacobsen skrev:

Flot og informativt guide/indlæg.

Thumbs up herfra (selvom jeg hverken har IHC varmestyring eller Openhab)

Tak.. Måske du burde overveje det :D

13 timer siden, bozidar skrev:

Tak for svar. Den er jeg med på ,men temperaturen kommer ikke ind i Appen.

Hvis du har sat createChannelsAutomatically=true i bindingen. Så kan du "fange" din temperatur føler i PaperUI. Det er præcis den samme, om det er på produktsiden eller FB siden i Visual. (Jeg laver den bare manuelt, fordi jeg ikke vil blande det sammen, så jeg både har PaperUI items og manuelle items). 
Her er et billede fra min Visual:
1001013875_Visualtemperaturfler.thumb.png.7688613022e8111f4daed7c23f1de5e2.png

Som du kan se i min things fil i første indlæg, så stemmer resourceID overens med Visual.

I PaperUI ser den således ud, som er produktsiden i Visual: (Rød er temperatur føleren, blå er fugt, hvis man har det i sin føler).
555390705_papueruiihctempOGfugtlink.thumb.png.28917fda9c542a45646b2b5525d6de28.png

Og her er et tip til dem som fx vil lave manualle things (channels) men er træt af at sidde og knokle rundt i Visual for at finde resourceIDére til produkterne. 
Temperaturføleren på produktsiden har recourceID 13699860). Dette nummer kan man bruge direkte i sin things fil. Så min channel i things filen for denne temperaturføler kunne lige så godt have set sådan her ud:

       Type number   :stortbad_temperatur_fb       "Stortbad Temperatur"                  [ resourceId=13699860, direction="ReadOnly" ]

Og det vil give præcis samme resultat.   

Hvis du ikke kan få vist din temperatur i appen, men at den fx viser sin fint i BasicUI eller openhab app. Så er det fordi der er noget galt med din item og opsætning af termostaten.. 
Tjek dit Google Assistant Tag.. Eller brug den nye mulighed med Metadata.
https://community.openhab.org/t/openhab-google-assistant-integration-v2-0/85573/185

Lige en vigtig melding:
Efter i forgårs er der IKKE længere muligt at få vist en temperaturføler alene i Google Hub eller Google Home app. 
Man SKAL altså opsætte det som en termostat, (som vist i første indlæg).

Så hvis det er det du forsøger, så er det nok det som er årsagen.

Link til kommentar
Del på andre sites

  • 0
29 minutter siden, bozidar skrev:

Hej Kim

Jeg kopierede mere eller mindre dine items og things ,og rettede dem til , og tilføjede mine resource IDer.

Altså, hvis vi lige ser bort fra resourceIDérne i første omgang..
Lige så snart du har sat et Tag på en item (fx [ "Thermostat" ], så bør den komme frem i Google Home appen, når du vel at mærket har husket at synkronisere dine enheder, (Sig til Google "Hey Google, synkronisere mine enheder". Det gælder et hvilket som helst Google Home Tag.  Og det er uanset om resourceID (channels) er korrekte eller ej. Du kan sågar gøre det med en proxy item, (virtual item). 

Hvis du fx laver en test med denne item:

Switch    dummy1    "Dummy switch"    <switch>   [ "Switchable" ] 

Så burde der komme en "dummy1" switch frem i Google Home appén, (HUSK! at synkronisere dine enheder). 

Hvis ikke det virker, så vil jeg tro at din forbindelse mellem openhab og Google har et problem. Det burde Google også melde retur, når du synkronisere. 

PS.
Ja BasicUI kræver man har lavet et sitemap. 
Du kan også bruge controlpanelet i PaperUI. Men det er normalt ikke det jeg anbefaler, fordi jeg synes det kontrolpanel er noget skrald der tager 117 år at loade, når man som mig har rigtig mange channels og items. (hele mit setup, ikke kun IHC). Og nogle gange vil controlpanelet bare ikke vise de rigtige data/opdateringer af status.  
Derfor bruger jeg altid sitemap, fordi jeg tester funktioner osv den vej igennnem.. Det er selvfølgelig lidt mere omstændigt fordi man skal lave en masse ekstra filer, men det giver mig et temmelig godt overblik over alle mine items og specielt groups. Derfor bruger jeg det altid. 

 

Link til kommentar
Del på andre sites

  • 0

Jeg har i længere tid haft et velfungerende setup med varmestyring gennem Google Home, via OpenHab integration. Lavet ud fra alle de gode input og guides fra dette forum.

Der dog opstået en udfordring med at vise temperatur i Google Home appen og min Nest Hub. 9 uf af 10 gange jeg åbner en termostat, så viser appen ikke temperatur eller setpunkt. Men bare en blank "skive" hvor jeg dog kan se om den varmer eller køler.

Alt virker ellers om det skal. Jeg kan bede Google om at ændre setpunkt, og det registreres i OpenHab og IHC, og temperatur indstiller derefter og alt virker. Men appen er blank (eller dvs af og til så viser den i kort periode temperatur og setpunkt - men meget sjældent).

 625094476_Googlehomescreendump.thumb.jpg.d3005d42b7fe5232bb57bad2ba1e9dd3.jpg

Når jeg ser i OpenHab Basic UI så registreres temperatur og setpunkt fint. Jeg mistænker at der i et eller omfang ikke kommunikeres status videre til Google ofte nok.

1198096532_varmeklderUI.thumb.JPG.f33b971a8c1399f3dbe3b60ee463a874.JPG

 

Termostaten her kodet i OpenHab som nedestående:

408997598_Kldervarmeitem.thumb.JPG.47ef5c23af6f83bcc618b25996828521.JPG

 

Med rule for opdatering

1370334022_kldervarmerule.JPG.bccff7c31d3bd83c1e5d1f8d891ef3fb.JPG

 

 

Er der et eller andet jeg overser her, eller mangler jeg parametre i noget af det der er lavet i OpenHab?

 

Problemet er muligvis opstået efter jeg opdaterede til den seneste version 2.x (har ikke overskuet at tage springet til v3)

 

Pfh tak til hvem end der kan komme med input/forslag!

 

Link til kommentar
Del på andre sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gæst
Svar på dette spørgsmål

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loader...
 Share

×
×
  • Tilføj...

Important Information

Privatlivspolitik og We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

1200x630bb.png

ok