Hop til indhold
  • 0

Få things til at påvirke hinanden


Jakob Hauerslev
 Share

Spørgsmål

Hej. 

Jeg er kommet godt fra land med openhab, og det kører bare med at sætte det op med Google og ihc. Mange tak for hjælpen til folk herinde!

Jeg har dog ikke helt fanget hvordan man får forskellige things til at påvirke hinanden - som jo er hele ideen med openhab. 

Mit mål er at få min ihc til at åbne/lukke mine velux-vinduer via en Klf200, uden at bruge dyrebare output i ihc'en. Men jeg strander konstant, selvom jeg har forsøgt at læse på dokumentationen. 

Jeg har lavet switches til klf'en der virker i openhab, men hvordan får jeg så ihc til at påvirke de switches?

Er det med rules eller hvad skal man gøre? Et "for dummies" eksempel ville være lækkert :-)

Mvh Jakob

Link til kommentar
Del på andre sites

14 svar på dette spørgsmål

Recommended Posts

  • 0

Yep det er via rules i openhab. 
Nu siger du at dine velux-vinduer kører via en KLF200. Det gør min vinduer også. Men der er forskellige måder at styre dem på. MED KLF200 firmware 2.xx så kan du styre vinduerne i 1-100%. Ellers kan du bruge scener som er oprettet i KLF200. Velux bindingen til openhab skulle gerne have fundet både vinduer og scener. 

Derefter er det sådan set en forholdsvis smal sag at få noget til at gøre noget andet ved påvirkning. 
fx.. 
 

rule "simple princip regel"
When 
    item sensor changed
then
    velux.sendCommand(ON) 
end

Denne simple regel (rule) gør sådan set det som den siger:

Når sensor  ændre sig, 
 så
Send kommando ON til velux. 

Sensor er så en item fra et eller andet
Velux er en item linket til et velux vindue eller en scene på din KLF200. 

Her er min gamle (en del mere omstændig/avanceret) rule til styring af mine velux vinduer, der bla tager forbehold for, om alarmen er slået til/fra, og om det er mørkt udenfor. Og så selvfølgelig temperaturen i form af en Netamo sensor. Det skal lige siges, at den er ændret lidt i dag. Men princippet er det samme. Den aktivere scener i KLF200.

rule "Automatic control of all skylight windows"
when
    Item NetamoUdendoersTemperature changed or
    Item Node13_SensorLuminance changed or
    Item alarm_totalalarm changed or
    Item dummy1 changed
then
    // Exit the rule when there is nothing to do
    if(Override.state == ON) return;
    if(alarm_totalalarm.state instanceof Switch ) return;
    if(!(Node13_SensorLuminance.state instanceof Number)) return;
    if(!(NetamoUdendoersTemperature.state instanceof Number)) return;

    // Calculate which velux to send the ON command to
    val Number fTemp = NetamoUdendoersTemperature.state as Number
    val Number lux = Node13_SensorLuminance.state as Number
    val alarm = alarm_totalalarm.state
    var velux = VeluxAlleLuk

    // Third table
    if(alarm == ON) {
        logInfo("debug", "Third table clause")
        velux = if(fTemp >= 18|"°C") VeluxAlleVent else VeluxAlleLuk
    }

    // Second table, we already know alarm isn't ON so we don't have to test it for OFF here
    else if(lux < 10){ 
        logInfo("debug", "Second table clause")
        velux = if(fTemp >= 18|"°C") VeluxAlleVent else VeluxAlleLuk
    }

    // First table, we know that alarm isn't ON and we know lux >= 20 so we don't have to test for it here
        else {
        logInfo("debug", "First table clause")
        switch fTemp 
             {
            case fTemp >= 25|"°C": velux = VeluxAlleAaben100
            case fTemp >= 24|"°C": velux = VeluxAlleAaben75
            case fTemp >= 23|"°C": velux = VeluxAlleAaben50
            case fTemp >= 18|"°C": velux = VeluxAlleVent
            default: velux = VeluxAlleLuk
        }
        logInfo("debug", "Choose " + velux.name)
    }

    // Send the command
	logInfo("skylight", "Sending ON command to " + velux.name + " because OutsideTemp = " + NetamoUdendoersTemperature.state + "  Lux = " + Node13_SensorLuminance.state + " and Alarm = " + alarm_totalalarm.state)
    velux.sendCommand(ON)
end


 

Link til kommentar
Del på andre sites

  • 0

I IHC kan du fx lave en fb, som en helt almindelig on/off eller kip styret af dine svagstrømstryk. Output fra denne fb skal ikke forbindes til noget i Visual.

I openHAB opretter du nu en manuel Thing, som peger på denne output fra din fb. Det kan du gøre enten i paperUI eller script. Nu laver du et item, som du linker til din ihc output thing. Endelig laver du en regel i stil med ovenstående, hvor du kan opdatere et Velux item med denne værdi.

Og ja, det er også mulig med trinløs regulering via KLF200 som nævnt. Jeg har selv både det og Velux scenarier konfigureret.

Link til kommentar
Del på andre sites

  • 0
11 timer siden, EjvindHald skrev:

Og ja, det er også mulig med trinløs regulering via KLF200 som nævnt.

Har du en regel hvor du bruger et IHC tryk til trinløs regulering af et Velux vindue? Og kan du gøre det på samme IHC tryK?
Det er nemlig en af de detaljer som jeg har brudt min knold med i et stykke tid. 

Link til kommentar
Del på andre sites

  • 0
På 9.10.2019 at 15:16 , Kandersen skrev:

Yep det er via rules i openhab. 
Nu siger du at dine velux-vinduer kører via en KLF200. Det gør min vinduer også. Men der er forskellige måder at styre dem på. MED KLF200 firmware 2.xx så kan du styre vinduerne i 1-100%. Ellers kan du bruge scener som er oprettet i KLF200. Velux bindingen til openhab skulle gerne have fundet både vinduer og scener. 

 

Nu troede jeg så at min Velux-binding virkede, men har startet forfra med Openhab 2.5, for at få ryddet op i min installation, og nu kan jeg absolut ikke få bindingen til at virke?

Bruger KLF200 med V1 FW - den kunne fint discover i paperui i openhab 2.4?

Nu kan jeg kun få den til at se Thing'en, men der sker intet når jeg prøver at finde channels.

Kender du eller andre til problemet - jeg er igen der hvor jeg har brugt nogle gode aftener på problematikken <_<

Link til kommentar
Del på andre sites

  • 0

Jeg bruger ikke paperUI til discover, men laver alt i filer med ganske få undtagelser. Det gør det bl.a. nemmere at opgradere til en ny version af openHAB som i dit tilfælde.

Jeg bruger den nye firmware v2 i min KLF200 sammen med den nye Velux binding, som understøtter dette. Det giver en række ekstra muligheder såsom trinløs regulering.

Link til kommentar
Del på andre sites

  • 0
På 16.10.2019 at 07:31 , EjvindHald skrev:

Jeg bruger ikke paperUI til discover, men laver alt i filer med ganske få undtagelser. Det gør det bl.a. nemmere at opgradere til en ny version af openHAB som i dit tilfælde.

Jeg bruger den nye firmware v2 i min KLF200 sammen med den nye Velux binding, som understøtter dette. Det giver en række ekstra muligheder såsom trinløs regulering.

Kan du smide et eksempel på din things og itemfil op?

Jeg har lidt svært ved at forstå hvordan jeg konfigurerer mine things, særligt velux, hvis det ikke er i paperui - synes at dokumentationen er betydeligt bedre i ihc bindingen ?

Link til kommentar
Del på andre sites

  • 0

Min Velux.things ser således ud:

Citat

Bridge velux:klf200:home   [ bridgeIPAddress="192.168.1.15", bridgePassword="velux123", timeoutMsecs=4000, retries=10 ] 

Mit Velux.items ser således ud:

Citat

Rollershutter KLF200Vindue "KLF vindue [%d]"  { velux="thing=actuator;channel=serial#53:07:09:26:0C:0D:00:5F" }
Rollershutter KLF200Rulleskodde "Rulleskodde" { velux="thing=actuator;channel=serial#56:23:3D:5A:0A:21:1A:46", autoupdate="false" }

Vigtigt: Hvis du bruger firmware V1 i din KLF200, kan du ikke bruge ovenstående. De er beregnet til firmware V2 i din KLF200, og det er også en helt anden binding, som du pt. manuelt skal lægge i add-on folderen.

Link til kommentar
Del på andre sites

  • 0

Beklager, men jeg er ret så håbløs ud i det her....

Jeg har nu fat i min KLF200, og kommer også online med mine vinduer:


 

2019-11-17 14:05:06.143 [hingStatusInfoChangedEvent] - 'velux:actuator:home:V_Entre' changed from UNINITIALIZED to INITIALIZING

2019-11-17 14:05:06.168 [hingStatusInfoChangedEvent] - 'velux:actuator:home:V_Entre' changed from INITIALIZING to ONLINE

2019-11-17 14:05:06.186 [hingStatusInfoChangedEvent] - 'velux:actuator:home:V_Bad' changed from UNINITIALIZED to INITIALIZING

2019-11-17 14:05:06.204 [hingStatusInfoChangedEvent] - 'velux:actuator:home:V_Bad' changed from INITIALIZING to ONLINE

 

Problemet er så når jeg bruger slideren i mit sitemap, så kommer den her:

2019-11-17 14:05:30.267 [ome.event.ItemCommandEvent] - Item 'V_Entre' received command 19

2019-11-17 14:05:30.288 [nt.ItemStatePredictedEvent] - V_Entre predicted to become NULL

 

- og der sker selvfølgelig intet...

EjvindHald - jeg kunne ikke få dit eksempel til at virke, bruger det fra dokumentationen, men eftersom begge enheder er online, så mener jeg at jeg har fat i dem?

 

Mvh Jakob

 

Link til kommentar
Del på andre sites

  • 0

Hej Jacob

Jeg foreslår, at du tager det op her fordi det reelt er et spørgsmål om Velux binding. I dette forum er der de mennesker, som har lavet det, og de kan sikkert svare.

Men det er vigtig, at du inden indlægget er helt skarp på versionen af klf200 firmware og bindingen, som du benytter. 

Link til kommentar
Del på andre sites

  • 0
2 timer siden, Jakob Hauerslev skrev:

Problemet er så når jeg bruger slideren i mit sitemap, så kommer den her:

2019-11-17 14:05:30.267 [ome.event.ItemCommandEvent] - Item 'V_Entre' received command 19

2019-11-17 14:05:30.288 [nt.ItemStatePredictedEvent] - V_Entre predicted to become NULL

Kan du poste dine things og items her, eller er det hele lavet i PaperUI ?

Link til kommentar
Del på andre sites

  • 0

Jeg er begyndt at forsøge med at lave det hele i filer, da jeg godt kan se at det er rigtig smart - men så rykker vi lige et niveau op i sværhedsgrad - men så er det jo godt at vi har så hjælpsomme folk her på forummet :-)

 

velux.things
 
// Definition of Velux bridge velux:klf200:home
//
 
Bridge velux:klf200:home [ ipAddress="192.168.1.22", tcpPort=51200, password="velux123" ] {
 
// Velux scenes
// Velux IO-homecontrol devices  
Thing actuator V_Entre [ serial="53:2A:59:5A:11:0E:01:99" ]
Thing actuator V_Bad [ serial="53:2A:59:5A:11:12:02:EE" ]
-----
velux.items
// Velux Actuator channels  
Rollershutter V_Entre "Velux entre [%d]" { channel="velux:klf200:home:V_Entre" }

Jeg har også prøvet at kalde rollershutter channel for velux:actuator:home:V_Entre (da det er det loggen skriver) men den skriver også bare NULL:

==> /var/log/openhab2/events.log <==

2019-11-19 19:22:23.564 [ome.event.ItemCommandEvent] - Item 'V_Entre' received command 38

2019-11-19 19:22:23.587 [nt.ItemStatePredictedEvent] - V_Entre predicted to become NULL

 

Det er sandsynligvis noget simpelt (det håber jeg) :-)

Link til kommentar
Del på andre sites

  • 0
3 timer siden, Jakob Hauerslev skrev:

Det er sandsynligvis noget simpelt (det håber jeg) :-)

Mja.. 
Jeg ved ikke hvad version du bruger. Men hvis du begiver dig ud i at lave dem i filer, og du før havde dem i PaperUI, så skal du huske at fjerne dem i PaperUI. Det er kun den absolut seneste version som kan "håndtere" begge dele med samme serielnummer. 

Anyway.. Din fil herover er lidt svær at tyde. Det ser ud som om det er et screendump fra VSC.. Det er nemmere, hvis du markere det hele og indsætter det her i et indlæg ved at bruge den der knap <> i menuen herover. Og så paster/kopiere du bare det hele ind i boksen der kommer frem.. 

En god ide når man gør det på denne måde med manuelle filer, det er at holde det til een ting ad gangen. 
Først få things things til at virke. Når de virker, så kan du se dem online i PaperUI. Der er absolut ingen grund til at rode med items, hvis things ikke er online. Ligesom det heller ikke giver mening at sidde og lave sitemaps, hvis items ikke virker. Man risikere at man sidder og roder i 117 ting på een gang. 
Derfor tager jeg altid et punkt ad gangen. Så:
Først Bridge (i dette tilfælde fordi der er en Brigde). Den skal vise ONLINE i PaperUI.
Dernæst things. Disse skal også vise online i PaperUI.
Så items. Hold øje med loggen.
Og til sidst sitemaps. Igen hold øje med loggen. 

Det gør det også nemmere at hjælpe, når man fx ved, at Bride og Things er ONLINE, men items ikke virker, (hvis det var det). 

Dit opsæt:
I din things fil herover ser det ud til du mangler en } som afslutter dine things. Det er muligvis en paste fejl. Og ellers burde den brokke sig i loggen, og things burde ikke være online. 

Men din items er nok her den rigtige synder er. Alt afhængig af hvilken version of KLF bindingen du bruger, så har du ikke defineret dem rigtigt. 
Se fx mine things og items her:

Bridge velux:klf200:home  [ ipAddress="10.4.28.252", tcpPort=51200, password="secret" ] {

// Velux IO-homecontrol devices

    Thing   actuator    VindueTh01       [ serial="56:08:1D:26:06:29:06:C7",inverted=true ]
    Thing   actuator    VindueTh02       [ serial="56:08:1D:26:06:30:0A:CD",inverted=true ]
    Thing   actuator    VindueTh03       [ serial="56:08:1D:26:06:29:12:03",inverted=true ]
    Thing   actuator    VindueTh04       [ serial="56:08:1D:26:06:29:08:7B",inverted=true ]
    Thing   actuator    VindueTh05       [ serial="56:08:1D:26:06:29:14:5B",inverted=true ]
    Thing   actuator    VindueTh06       [ serial="56:08:1D:26:06:30:0C:A1",inverted=true ]
    Thing   actuator    VindueTh07       [ serial="56:08:1D:26:06:29:0D:0D",inverted=true ]
    Thing   actuator    VindueTh08       [ serial="56:08:1D:26:06:29:14:5C",inverted=true ]
}


 

Rollershutter Vindue01       "Vindue stue syd-øst 1 [%d]"                       [ "Blinds" ] { channel="velux:actuator:home:VindueTh01:position", autoupdate="false" }
Rollershutter Vindue02       "Vindue spisestue øst 2 [%d]"                      [ "Blinds" ] { channel="velux:actuator:home:VindueTh02:position", autoupdate="false" }
Rollershutter Vindue03       "Vindue stue nord-øst 3 [%d]"                      [ "Blinds" ] { channel="velux:actuator:home:VindueTh03:position", autoupdate="false" }
Rollershutter Vindue04       "Vindue køkken syd-øst 4 [%d]"                     [ "Blinds" ] { channel="velux:actuator:home:VindueTh04:position", autoupdate="false" }
Rollershutter Vindue05       "Vindue stue syd-vest 5 [%d]"                      [ "Blinds" ] { channel="velux:actuator:home:VindueTh05:position", autoupdate="false" }
Rollershutter Vindue06       "Vindue spisestue vest 6 [%d]"                     [ "Blinds" ] { channel="velux:actuator:home:VindueTh06:position", autoupdate="false" }
Rollershutter Vindue07       "Vindue 1 [%d]"                                    [ "Blinds" ] { channel="velux:actuator:home:VindueTh07:position", autoupdate="false" }
Rollershutter Vindue08       "Vindue stue nord-vest 8 [%d]"                     [ "Blinds" ] { channel="velux:actuator:home:VindueTh08:position", autoupdate="false" }

 

Den nemmeste måde at ramme item link til channel korrekt i items, det er simpelthen ved at klippe den direkte fra PaperUI. Specielt med KLF bindingen, fordi ham der laver den bytter rundt på navnene, og det er møg forvirrende.. 
Derfor gør jeg altid det, at jeg opretter things i filen og sikre mig de er online. Derefter går jeg ind i paperUI og tager "stien" til channel.. 
Se dette screendump fra PaperUI:

1388647065_papuerui_itemslink.thumb.png.fda3bdc93b288016768ffb8f1b1e017e.png

Når du klikke på den som pilen peger på, så kopieres stien til clipboard.. Og så kan du bare indsætte/paste det direkte ind imellem " " i { channel="velux:actuator:home:VindueTh01:position" }

Sådan, ikke så meget pjat i det. Og chancen for at skrive forkert (manuelt indtastet) er minimalt :-)

 

Link til kommentar
Del på andre sites

  • 0
20 timer siden, Kandersen skrev:

Den nemmeste måde at ramme item link til channel korrekt i items, det er simpelthen ved at klippe den direkte fra PaperUI. Specielt med KLF bindingen, fordi ham der laver den bytter rundt på navnene, og det er møg forvirrende.. 

 

Derfor gør jeg altid det, at jeg opretter things i filen og sikre mig de er online. Derefter går jeg ind i paperUI og tager "stien" til channel.. 
Se dette screendump fra PaperUI:

1388647065_papuerui_itemslink.thumb.png.fda3bdc93b288016768ffb8f1b1e017e.png

Når du klikke på den som pilen peger på, så kopieres stien til clipboard.. Og så kan du bare indsætte/paste det direkte ind imellem " " i { channel="velux:actuator:home:VindueTh01:position" }

Sådan, ikke så meget pjat i det. Og chancen for at skrive forkert (manuelt indtastet) er minimalt :-)

 

Det var det der var galt - nu er jeg ikke vant til at læse dokumentation, men jeg har godt nok kradset hul i hovedbunden et par gange over den KLF-binding og den tilhørende dokumentation - total forvirring fra min side.

Det virker nu hvor jeg fandt den inde i channel-listen, det var der den var gal. jeg manglede ":position"

- Dog meldte den en fejl i loggen, som jeg brugte 15 minutter på, men det var så fordi regnsensoren var aktiv og blokerede vinduet... :D

 

Igen mange tak for hjælpen - jeg generer dig en anden dag hvor der er noget jeg ikke kan få til at virke ;-)

Link til kommentar
Del på andre sites

  • 0
1 time siden, Jakob Hauerslev skrev:

men jeg har godt nok kradset hul i hovedbunden et par gange over den KLF-binding og den tilhørende dokumentation - total forvirring fra min side.

Ikke kun din side. Jeg har også haft mine besvær med at forstå hans dokumentation.. Det er lidt hagen ved disse mennesker som udvikler til openhab. Rigtig mange af dem er sindsyg gode til at udvikle, men det der med dokumentation, der halter tingene ofte.. Meningen er så også, at det der med dokumentation, det skal vi alle helst hjælpe til med. Men det er dælme svært at gøre, hvis man ikke fatter hvad det er udvikleren skriver og har lavet.

1 time siden, Jakob Hauerslev skrev:

Igen mange tak for hjælpen - jeg generer dig en anden dag hvor der er noget jeg ikke kan få til at virke ;-)

Du generer bare løs.... :D

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