Hop til indhold
  • 0

Best practice Openhab2 (binding ver 1), Homekit og IHC


EjvindHald
 Share

Spørgsmål

Tilføjelse December 2019: Nedenstående gælder for IHC Binding version 1. Indlæg vedr. Binding version 2 findes her.

Jeg har brugt nogen tid på Openhab2 med integration til bl.a. IHC og Homekit. En del fra dette forum - bl.a. Pauli Anttila og Claus Skovgaard - har givet væsentlige bidrag, så jeg kunne komme videre. Derfor vil jeg hermed komme med, hvad jeg synes er 'best practice' og simpelt, så andre måske kan spare lidt tid.

Et vigtigt kriterie er, at IHC systemet skal kunne fungere selvstændigt uden at være afhængig af 3. parts software fra fx Openhab eller Apple. Det betyder, at man ikke i væsentlig grad må være afhængig af denne type software for at kunne foretage de mest basale ting i sit hus. 

Løsningen er ret simpel - efter setup af bindings behøver man faktisk kun lave én fil kaldet ihc.items, og den kan se sådan ud:

5898ce9681973_Itemseksempel.thumb.png.79d38402e2e0b5c3308fe8a9d762ff16.png

Eksemplet viser, at udgangen styrer on/off visning i Homekit, mens en tænding i Homekit ved at trykke på ikonet aktiverer øverst venstre svagstrømstryk, og slukning aktiverer øverst højre svagstrømstryk. Det betyder, at man ikke aktiverer output i IHC direkte, men kun input - fuldstændig som hvis man fysisk trykker på et svagstrømstryk.

Resource ID fra IHC kan ses ved at hold CTRL knappen nede i Visual, mens man kører musen over elementet. Tallet 80 betyder, at pulsen varen 80 millisekunder.

Pauli Anttila fra dette forum har lavet en rigtig smart binding, hvor man for hver funktion - fx en spot i loftet - kan angive, hvad i IHC der skal vise status i Homekit, hvad der påvirkes i IHC, når man i Homekit sætter noget ON og ditto, når man sætter OFF i Homekit. Det er konfigureret i tegningen herover, og det ser således ud i Iphone:

 

5898cf3650465_Homekitstatus.thumb.png.74245b633163da1ecded22754d231834.png

 

Det er dokumenteret af Pauli, men den fulde konsekvens og muligheder fandt jeg først efter indlægget fra Claus Skovgaard. Eksempelvis kan man tilføje Alarm til Homekit, hvis man har tiltro til Apples eksterne sikkerhed. Her er pegepinden til IHC dog ikke input, men til en Alarm funktionsblok. Se dette eksempel fra Visual:

5898cfaa43437_AlarmIHChomekit.png.697e65bd8d7eb07db1c0342808e7e828.png

 

Samlet betyder det, at IHC holder al logik med mulighed for egne add-ons, hvis der er behov. Man behøver kun at lave ihc.items og ingen rules eller sitemap, hvis man benytter Habpanel eller Homekit bruger interface.  

Jeg benytter hw 6.1 med firmware 2.7.199 og har endnu ikke oplevet genstart af controller eller andre problemer. Der er ca. 60 IHC elementer koblet til, og svartiden er instant - dvs. < 1 sekund. Det afvikles på den mindste model af Synology NAS server, som jeg i forvejen har tændt 24/7 til backup formål. Openhab2 har installationspakker til bl.a. Windows, Synology og RPi. 

mvh / Ejvind

 

Link til kommentar
Del på andre sites

Recommended Posts

  • 0
På 3/5/2017 at 23:09 , BrianPedersen skrev:

Det var desværre ikke bare det... må kikke der hele igennem igen.. overvejer også at starte forfra for at prøve om det hjælper...

Jeg gør følgende når jeg afprøver openhab, fordi jeg altid formår at få ødelagt en eller anden konfigfil eller glemmer hvad jeg lige gjorde for at det virkede igår.

1) Ny installation af openhab (bruger for det meste bare seneste snapshot) på min PC (fordi min NAS er mega langsom)
2) installer f.eks. i c:\temp\openhab2
3) efter indledende installation, så zipper jeg mappen. (så er det nemt at starte forfra)
4) installere kun de plugins jeg skal anvende til forsøget, her IHC og homekit.
5) prøver at finde hoved og hale i IHC   xxxxxxx.VIS fil (læses lidt nemmere i windows 10 code writer som xml dokument)
6) laver en ihc.items i   openhab2/conf/items.

eksempel fra min ihc.items

Switch Alrum_vask               "Alrum vask"    <light> ["Lighting"]    {ihc="<0x795b,>[ON:0x8a911:80],>[OFF:0x8aa11:80]"}
Switch Alrum_bord               "Alrum bord"    <light> ["Lighting"]    {ihc="<0x7f5b,>[ON:0x9a311:80],>[OFF:0x9a411:80]"}
Switch Alrum_spots              "Alrum spots"   <light> ["Lighting"]    {ihc="<0x945b,>[ON:0xc05a:100],>[OFF:0xc05a:100]"}
Switch Vaerelse_1_mads          "Mads"          <light> ["Lighting"]    {ihc="<0x5e5b,>[ON:0x34a11:80],>[OFF:0x34b11:80]"}


7) genstarter openhab

8) hvis det driller, så prøv kommandoen homekit:clearPairings i openhab2 kommando vindue.

 

I de få tilfælde hvor det så faktsik lykkes at få det til at virke, så kopierer jeg konfigfiler (ihc.items etc) over på min openhab2 installation på NAS.

Min største udfordring pt er at finde hoved og hale i IHC konfig filen xxxx.VIS

 

god fornøjelse.

 

 

Link til kommentar
Del på andre sites

  • 0

Så virker det endelig... men det var en hård kamp... lavede et nyt image og startede forfra..... men men men... havde taget grejet med i sommerhus, og der virkede det fint via VPN, dog ved jeg ikke om lyset tændte og slukkede, men hjemme igen, kunnne jeg ikke få HomeKit til at forbinde efter raspberry pi havde fået ny ip, selvom jeg havde ændret ip i interface opsætning i HomeKit, så på med en nyt image, og prøve forfra... (er ved at være hurtig til at sætte det op) og nu spiller det bare.. så skal jeg bare til at fylde items filen, Og finde ud af hvordan jeg ligger lyddæmpere ind.....

Link til kommentar
Del på andre sites

  • 0

Jeg er ved at prøve og lave et tryk i homekit som skal aktivere en funktionsblok (sluk alt).

Ønsket er at den blot skal sende en puls til fb'en

Men jeg synes pinedød ikke jeg kan få den til at aktivere den.

 

Jeg har en masse andet kørende, som dog går direkte ind på output istedet, det fungere fint.

Er der nogen som har en linje fra ihc.items der virker, som jeg må se ? og det er vel bare resource_input id der skal linkes til ?

Link til kommentar
Del på andre sites

  • 0
33 minutter siden, LarsC skrev:

Er der nogen som har en linje fra ihc.items der virker, som jeg må se ? og det er vel bare resource_input id der skal linkes til ?

Sidder ikke lige ved min maskine, men du kan få en items linje i aften. 
Og ja, det er bare at linke til resourcen for trykket i OpenHab. Jeg har gjort det med en hel del tryk i vores hus, og det fungere ganske udmærket. Det eneste du ikke kan, det er "langt" tryk. Det fatter OpenHab2 simpelthen slet ikke. Så det har jeg opgivet at få til at virke. Jeg kan dog ikke hjælpe med Homekit, for det bruger jeg ikke.

Link til kommentar
Del på andre sites

  • 0
1 minut siden, Kandersen skrev:

Sidder ikke lige ved min maskine, men du kan få en items linje i aften. 
Og ja, det er bare at linke til resourcen for trykket i OpenHab. Jeg har gjort det med en hel del tryk i vores hus, og det fungere ganske udmærket. Det eneste du ikke kan, det er "langt" tryk. Det fatter OpenHab2 simpelthen slet ikke. Så det har jeg opgivet at få til at virke. Jeg kan dog ikke hjælpe med Homekit, for det bruger jeg ikke.

Det lyder godt!

Langt tryk har jeg heller ikke noget at bruge til, jeg laver den enten direkte ind i fb'en eller også bare et 'fiktiv' tryk som jeg kan ramme fra openHab.

homekit delen har jeg styr på.

Link til kommentar
Del på andre sites

  • 0

Har helt glemt denne her, LarsC. Beklager jeg. 
Her er en items. Jeg har lavet items til samtlige rum i huset. Dette er items fra vores store badeværelse.

De første tre linjer (under den linje der starter med //Stort Bad) er til temperatur/fugt føler og setpunkt.
De næste fire linjer er tryk på et 4tast tryk.
Den sidste linje er en Uni400 lysdæmper. Den kan tændes og slukkes men ikke dæmpes via OpenHab, da OpenHab ikke fatter kort/langt tryk. 

Håber det kan bruges. 
 

//Stort Bad
Number stort_bad_Temperature "Temperature [%.1f °C]" <cu_heating> ["TargetTemperature"] {ihc="13699860"}
Number stort_bad_Tempsetpunkt "Temperature setpunkt" <temperature> {ihc="7989780"}
Number stort_bad_fugt "Fugtighed [%.1f %]" <Humidity> ["TargetHumidity"] {ihc="13699623"}

Switch stort_bad_OEV "Tryk øverste højre" <light> ["lighting"] {ihc=">[ON:20058:100]", autoupdate="false"}
Switch stort_bad_OEH "Tryk øverste venstre" <light> ["lighting"] {ihc=">[ON:20314:100]", autoupdate="false"}
Switch stort_bad_NV "Tryk nederste venstre" <light> ["lighting"] {ihc=">[ON:20570:100]", autoupdate="false"}
Switch stort_bad_NH "Tryk nederste højre" <light> ["lighting"] {ihc=">[ON:20570:100]", autoupdate="false"}

Switch stort_bad_halogenlys "Dimmer status" <light> ["lighting"] {ihc="5540626", autoupdate="false"}

Link til kommentar
Del på andre sites

  • 0

Hej Alle sammen

 

Jeg er ny IHC bruger og openHAB bruger.

Jeg har fulgt guiden og har fået mit HABpanel til at læse en .items fil med IHC.

Jeg har lavet en simpel test med at tænde og slukke for mine spots i Køkkenet.

Desværre sker der ikke noget noget jeg trykker på knappen.

Der er 2 ting jeg er usikker på som jeg håber i kan hjælpe med.

 

1 er det skrevet rigtig i Itemes filen

image.thumb.png.3e624ff3ec099a2b17a4afb8dfb6becb.png

Jeg har på billedet her under sat pile på hvor jeg har taget ID's (antager det er de bagerst tal ud af de 2 tal som kommer efter ID:

5a415b683ed36_ihcopenhab.thumb.png.77121dcdcb9c85aa3352ec1e78cb3a45.png

 

Spørgsmål 2

Hvordan ved jeg om min openHAB (er installeret på en synology) at den den har forbindelse til min IHC controller.

Jeg har sat den rigtige IP men syntes ikke rigtig man får en beskæftigelse på den har forbindelse 

 

Håber i kan hjælpe. :)

Link til kommentar
Del på andre sites

  • 0

Kan ikke hjælpe dig med OpenHab på en synologi, da jeg bruger en RPi. 
Men OpenHab har en logfil, (som jeg heller ikke kan guide dig til hvor ligger). I den kan du se om den får forbindelse til din IHC controller. 

Prøv at søg 3-4 uger tilbage. Der var en også med Synologi som havde samme problem. Han fandt logfilen.

Derefter kan vi tage items filen. 

Link til kommentar
Del på andre sites

  • 0

Hej @Rasmus

Vedr spm 1 så det det umiddelbart korrekt ud, hvad du har lavet. 

Vedr spm 2, så er det på Synology ret enkelt at se logfilen. Log på NAS serveren, vælg 'Package Center' og klik herefter på OpenHAB. Dernæst skal du klikke på 'View Log' - begge dele er vist i nedenstående skærmkopi. Bemærk at jeg ikke benytter nyeste udgave af OpenHAB 2.0 (har ikke haft tid til at opgradere :-)

image.thumb.png.9953ebbae6db093d5ddd1f05f2138bfe.png

Husk:

Installer den korrekte java version. Du kan ikke bruge den, der er pre-installeret på Synology - mere info her. Desuden skal det være nyeste version af java.

Brug ikke Notepad til at editere filer. Brug i stedet SmartHome Designer, som er et gratis DevTool til OpenHAB.

 

Link til kommentar
Del på andre sites

  • 0

Hej med Jer...

Jeg tænke jeg ville prøve at installere openhab2 på min synology nas som alligevel står at kører, men jeg mangler lidt hjælp til at komme videre.

Jeg har fået openhab og java på nas og kan åbne browser med paper ui og installere ihc binding, men hvordan kommer jeg videre herfra, hvor skal alle de kommandoer skives henne? jeg har prøvet at hente ecilpse smarthome men dem kommer med fejl når jeg åbner det. jeg er mac bruger.

Håber i kan hjælpe mig lidt på vej...

Henrik

Link til kommentar
Del på andre sites

  • 0
På 16/2/2018 at 11:08 , Marlau skrev:

Hej med Jer...

Jeg tænke jeg ville prøve at installere openhab2 på min synology nas som alligevel står at kører, men jeg mangler lidt hjælp til at komme videre.

Jeg har fået openhab og java på nas og kan åbne browser med paper ui og installere ihc binding, men hvordan kommer jeg videre herfra, hvor skal alle de kommandoer skives henne? jeg har prøvet at hente ecilpse smarthome men dem kommer med fejl når jeg åbner det. jeg er mac bruger.

Håber i kan hjælpe mig lidt på vej...

Henrik

Du skal lave dine items filer manuelt for de IHC komponenter du vil have registreret i OpenHab2. 

Link til kommentar
Del på andre sites

  • 0

Så lykkes det at få hul igennem til homekit, via raspberry pi. fulgte youtube fra mk smart home og en skrevet guide fracebookgruppen ihc og openhab, men inden jeg tilføjer flere, vil jeg lige høre om det Ejvind anbefaler med at man henviser til trykket i stedet for udgangen. kan det være det samme tryk til både tænd og sluk??? {ihc="<xxxxxx,>[ON:xxxxx:80],>[OFF:xxxxx:80]"} og gælder samme for feks tryk for aktivere hjemmesimulering?

 

Link til kommentar
Del på andre sites

  • 0

Nej og ja.. 
Ejvind´s anbefaling er to tryk, et til ON og et til OFF.
Desværre kender items i openhab2 ikke et tryk (fjeder olign) som standard. Og det har virkelig givet mig grå hår i hovedet, når det praktisk talt er det eneste vi operere med i IHC verden.
Det betyder ikke at du ikke kan bruge tryk i openhab2, men det betyder at du skal lave "tryk" funktionene i "frontend", dvs i Classic UI eller i habpanel, hvor du i classic definere en [KIP] funktion, eller en switch i Habpanel. Så virker det som hvis det havde været et almindeligt IHC tryk.

Link til kommentar
Del på andre sites

  • 0

okay tak, det må jeg se om jeg kan finde ud af. I forhold til IHCappen var det ikke også på udgangen den brugte til at tænde og slukke i appen? og vil man få problemer hvis man kun brugte den løsning via openhab? alternativt kunne man så oprette nye tryk i visual med on off på hver sit tryk, det har jeg brugt til IHC appen for at få statuslys og dem med lange tryk til kort tryk?

Du har lavet et items Switch stort_bad_NH "Tryk nederste højre" <light> ["lighting"] {ihc=">[ON:20570:100]", autoupdate="false"}. hvad betyder det sidste autoupdate="false"?

Link til kommentar
Del på andre sites

  • 0
2 timer siden, Marlau skrev:

okay tak, det må jeg se om jeg kan finde ud af. I forhold til IHCappen var det ikke også på udgangen den brugte til at tænde og slukke i appen? og vil man få problemer hvis man kun brugte den løsning via openhab? alternativt kunne man så oprette nye tryk i visual med on off på hver sit tryk, det har jeg brugt til IHC appen for at få statuslys og dem med lange tryk til kort tryk?

Jeg ved ikke helt hvad IHC appen bruger. Jeg tror den bruger trykkene. 

autoupdate=false. Det er den mulighed du har i items for at definere en switch som en push button (tryk som vi kender det). Men man skal stadigvæk definere det som kip i sitemap og push i habpanel, ellers kan det ikke rigtig bruges til noget. 

Link til kommentar
Del på andre sites

  • 0
På 19/2/2018 at 22:26 , Marlau skrev:

Så lykkes det at få hul igennem til homekit, via raspberry pi. fulgte youtube fra mk smart home og en skrevet guide fracebookgruppen ihc og openhab, men inden jeg tilføjer flere, vil jeg lige høre om det Ejvind anbefaler med at man henviser til trykket i stedet for udgangen. kan det være det samme tryk til både tænd og sluk??? {ihc="<xxxxxx,>[ON:xxxxx:80],>[OFF:xxxxx:80]"} og gælder samme for feks tryk for aktivere hjemmesimulering?

 

Det kan sagtens være samme tryk du mapper til til ON + OFF. Og input mappes til en indikering på IHC siden. På den måde kan du bruge en OpenHAB switch i kombination med IHC trykkene, og OpenHAB switchen opdateres også når du bruger de fysiske knapper.

Fx:

.items:
Switch ihc_tryk_feedback "Stuelampe" <onoff> {ihc="<0x143cc712,>[ON:0x143cc311:100],>[OFF:0x143cc311:100]"}

.sitemap
Switch item=ihc_tryk_feedback 

Se mere om mulighederne her:

 

Link til kommentar
Del på andre sites

  • 0
På 7/2/2017 at 11:40 , Claus Skovgaard skrev:

Løsningen er en work-around med to elementer.

  1. Opjuster timeout på IHC (i openhab.cfg eller ihc.cfg) fra 5000 (default) til 10000. Det løste "blokeringen" og jeg kunne se i loggen at der nu altid kom svar (dog først efter ca. 7 sekunder).
  2. Indsæt en rule som sender en dummy kommando til controlleren fx hvert kvarter. Dette løste at den nu aldrig hænger mere.
    
    Switch ihc_keepalive	""		{ihc=">[ON:0x505a:100]", autoupdate="false"}
     
    
    rule "Avoid IHC command delay"
    when
    	Time cron "0 12/15 * * * ?"
    then
    	sendCommand(ihc_keepalive, ON)
    end

     

Det er en work-around, men det ser ud til at virke. Jeg tror årsagen er IHC-controlleren, og det er jo svært at gøre noget ved.

Jeg vil lige komme med en update på dette issue efter at have kørt med overstående work-around i over et år.

Jeg har selv erfaret at det åbenbart ikke er nok at have en keep-alive til at helt at undgå problemet, da det ind i mellem opstår alligevel. Jeg vil gætte på at ca. hver anden måned er der, ret pludseligt, igen lange svartider. Der er så blevet "løst" ved at gensarte openHAB eller controlleren.

For nogen tid siden besluttede jeg mig så for at se, hvor meget der skulle til for at få forbindelsen stabil igen, og lavede derfor nogle programmatiske funktioner til genstart af IHC bindingen, openHAB samt min RPi (fra openHAB). Erfaringen er nu at det, når problemet kommer, er nok at genstarte IHC bindingen, så det vil jeg dele med jer andre der måske også stadig oplever disse udfald. Så når man oplever det, er det blot at gå ind i sin "restart" menu og genstarte IHC bindingen. Efter et par minutter skulle alt være klart igen.

Jeg er klar over det stadig er en work-around, men for mig er det pt en acceptabel løsning da det ikke sker oftere. Jeg inkluderer alle tre niveauer af genstart til de interesserede. Kræver "exec" bindingen og virker på Linux systemer.

På Windows kan man bruge copy i stedet for touch (copy /b ...\openhab\addons\org.openhab.binding.ihc-1.9.0-SNAPSHOT.jar +,,) og igen andre kald til at genstarte hhv. openHAB og maskinen.

.items

Switch restart_ihc_binding						"Genstart IHC binding"	<info>
Switch restart_openhab							"Genstart OpenHAB"	<info>
Switch restart_pi							"Genstart System"	<info>

.rules

rule "Restart IHC Binding"
when
	Item restart_ihc_binding received update ON
then
	logInfo("IHCRestart", "Restarting IHC binding")
	//Update IHC binding path to the correct in your setup. Touch will make openHAB reload the jar.
	executeCommandLine("touch@@/usr/share/openhab/addons/org.openhab.binding.ihc-1.9.0-SNAPSHOT.jar@@")
	postUpdate(restart_ihc_binding, OFF)
end

rule "Restart OpenHAB"
when
	Item restart_openhab received update ON
then
	logInfo("openhabRestart", "Restarting OpenHAB")
	executeCommandLine("systemctl@@restart@@openhab.service@@")
	postUpdate(restart_openhab, OFF)
end

rule "Restart Pi"
when
	Item restart_pi received update ON
then
	logInfo("piRestart", "Restarting Pi")
	executeCommandLine("reboot")
	postUpdate(restart_pi, OFF)
end

.sitemap

Switch item=restart_ihc_binding mappings=[ON="Genstart"]
Switch item=restart_openhab mappings=[ON="Genstart"]
Switch item=restart_pi mappings=[ON="Genstart"]

 

Link til kommentar
Del på andre sites

  • 0

Det er ikke så meget jeg har nået at få boret i det her problem, i og med mit først er blevet værre på det seneste. 
Men jeg har en lille mistanke om, at det hænger sammen med hvad IHC controlleren laver på det tidspunkt man sender en kommando til den. 
Jeg har flere items som går ind og aktivere tryk på IHC controlleren. Disse giver stort set aldrig problemer. Derudover har jeg gang i en "test", hvor jeg bruger en Z-ware PIR til at gå ind og aktiver en PIR timer i IHC controlleren. Og det er som er begyndt at give problemer, ret store faktisk, så jeg har måtte afbryde rulen for den. 
Jeg mistænker derfor, at det er når IHC controlleren er i gang med at tælle ned, at den har svært ved at modtage en kommando igen. Men jeg skal have boret lidt mere i det, bla ved at aktivere nogle af de tryk, som der ellers ikke giver problemer. 

Link til kommentar
Del på andre sites

  • 0

Stort tak EjvindHald for din guide. Jeg har brugt IHC bridge igennem openhab i et år, uden de store problemer.

Vælger at lave dette anlæg, da jeg ikke kan få scener til at virke i IOS home. Jeg er ret sikker på at det er fordi jeg ikke har sat ON/OFF ind i items som du har vist i guiden, men dette skyldes at jeg ikke kan regne denne del ud.

Hvis jeg laver en scene "tager afsted", og vælger at slukke alt lys, stopper programmet med at virke.

 

Henter jeg ID for ON/OFF i tænd og sluk eller i ON og OFF under udgangen på billedet nedenfor?

 

1096486648_Skrmbillede2018-09-22kl_20_58_53.png.0d27aed2d8a0edbe1aeef375c1156471.png

 

Unavngivet.jpg.5b09e050a7e7fbf9090022251d7c59d3.jpg

 

Link til kommentar
Del på andre sites

  • 0
21 timer siden, Morten.P skrev:

Henter jeg ID for ON/OFF i tænd og sluk eller i ON og OFF under udgangen på billedet nedenfor?

 

1096486648_Skrmbillede2018-09-22kl_20_58_53.png.0d27aed2d8a0edbe1aeef375c1156471.png

 

Unavngivet.jpg.5b09e050a7e7fbf9090022251d7c59d3.jpg

 

Det burde gå ud på et. Men dit eksempel over dit screendump er forkert. Du mangler et h tilsidst (0xC3E5Bh) Brug evt ascii værdien i stedet som i dit screendump er 802395.

Link til kommentar
Del på andre sites

  • 0
21 minutter siden, rdaf2014 skrev:

Hejsa. Er ikke helt sikker på du har ret mht. det manglende h. 

Normalt anvendes h til at angive at tallet er hexidecimalt. Det samme gøres andre steder ved at sætte 0x foran tallet. Man skal ikke gøre begge dele. 

Hex 01ad2  =  01ad2h  =  0x01ad2

ikke 0x01ad2h !

Ahh du har sikkert ret.. 
Det er fordi jeg bruger ascii værdien, aldrig hex :)

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