ĂysteinHJ Skrevet 11. april 2020 Skrevet 11. april 2020 SĂžnnen min Ăžnsker diskolys i taklampa si, som har 3 stk Ikea TRĂ DFRI RGB-pĂŠrer i seg som er lagt til og gruppert i Phoscon. Bruker JowiHue som plugin.  Planen min er Ă„ bruke et skript til Ă„ generere en tilfeldig farge, og deretter sette gruppen med pĂŠrer til den fargen. Jeg Ăžnsker Ă„ bruke en timer som kjĂžrer skriptet hvert sekund, og som sĂžnnen min kan aktivere og deaktivere ved Ă„ trykke Previous/Next-knappene pĂ„ en Ikea TRĂ DFRI fjernkontroll (On/Off, Dimmer Up og Dimmer Down er knyttet fra fĂžr i Phoscon).  Skriptet for Ă„ sette tilfeldig farge fungerer fint. Men jeg har problemer med event-logikken. SĂ„ langt tenker jeg at jeg trenger fire eventer:  1. En som trigger pĂ„ timer-verdi X, kaller fargeendringsskriptet, og setter timeren til verdi X-1 (slik at det trigger pĂ„ ny om ett sekund). 2. En som trigger pĂ„ Previous/Next-knappene hvis timeren IKKE gĂ„r (mao. at fargesykling ikke er aktiv), og deretter starter timeren. 3. En som trigger pĂ„ Previous/Next-knappene hvis timeren GĂ R (mao. at fargesykling er aktiv), stopper timeren, rydder opp (setter varmhvitt lys og nuller timeren). 4. En som trigger pĂ„ On/Off-knappene hvis timeren GĂ R, stopper timeren og rydder opp).  Den fĂžrste fungerer tilsynelatende fint. Timerverdi 0 indikerer at timeren ikke gĂ„r, og sĂ„ trigges det pĂ„ timerverdi 2 som setter timeren til verdi 1. Tenker pĂ„ Ă„ kanskje endre logikken her, siden timeren ved oppstart i starten trenger to sekunder fĂžr den trigger og endrer.  Det er den andre og tredje som lager problemer. Siden jeg ikke kan finne en mĂ„te Ă„ sjekke om en timer kjĂžrer eller ei inni en event, bruker jeg timer-verdien. Det som skjedde var at HomeSeer hang og CPU-bruken gikk rett i taket. Lurer pĂ„ om det kanskje kan ha noe med den "equal to 0"-tiggeren, siden timeren vil forbli 0 et helt sekund, som kanskje leder til at eventen trigger igjen og igjen.  Er logikken min helt pĂ„ jordet her? Takker for innspill. Siter
ZoRaC Skrevet 11. april 2020 Skrevet 11. april 2020 (endret) Har du EasyTrigger? I sÄ fall, et event som er «recurring» hvert sekund. En virtuell device for «kjÞrer»=ja/nei. SÄ bruker du ET til enable/disable event nÄr knappen trykkes (kan ogsÄ gjÞres med enlinjers script, om du ikke har ET).  EDIT: Du bÞr bruke «set to», ikke «changes». Endret 11. april 2020 av ZoRaC 1 Siter
ĂysteinHJ Skrevet 12. april 2020 Forfatter Skrevet 12. april 2020 Takk for tips. Dette skal jeg teste. Siter
ĂysteinHJ Skrevet 12. april 2020 Forfatter Skrevet 12. april 2020 13 timer siden, ZoRaC skrev: Du bĂžr bruke «set to», ikke «changes». Den er grei. Men hvorfor, av ren nysgjerrighet? SprĂ„klig er jo "is set to" og "changes and becomes" helt likt. Eventuelt sĂ„ er forskjellen at den fĂžrste er endret av noe annet mens den andre endres pĂ„ egenhĂ„nd. Er dette forskjellen? Siter
ZoRaC Skrevet 12. april 2020 Skrevet 12. april 2020 1 minutt siden, ĂysteinHJ skrev: Den er grei. Men hvorfor, av ren nysgjerrighet? SprĂ„klig er jo "is set to" og "changes and becomes" helt likt. Eventuelt sĂ„ er forskjellen at den fĂžrste er endret av noe annet mens den andre endres pĂ„ egenhĂ„nd. Er dette forskjellen? Med «changes and becomes» sĂ„ vil den ikke trigge om du trykker 2 ganger pĂ„ «next» etter hverandre, uten Ă„ trykke pĂ„ en annen knapp i mellomtiden. «Set to» trigger selv om samme knapp trykkes etter hverandre.   «Etter hverandre» kan vĂŠre dagesvis mellom - sĂ„ «next» vil ikke virke i dag, hvis siste knapp du trykket pĂ„ i forrige uke ogsĂ„ var «next». Siter
ZoRaC Skrevet 12. april 2020 Skrevet 12. april 2020 Kunne du forresten delt scriptet ditt? Jeg vurderer Ă„ gjĂžre noe tilsvarende. Â Siter
ĂysteinHJ Skrevet 12. april 2020 Forfatter Skrevet 12. april 2020 Javisst. Det er ikke lagt inn noen dynamisk styring via parametre, men det stĂ„r pĂ„ TODO-lista. SĂ„ enn sĂ„ lenge sĂ„ har jeg hardkodet inn navnet pĂ„ Phoscon-gruppa som skal styres. Sub Main(ByVal json As String) Dim rnd as New Random() Dim color(2) As Integer For i As Integer = 0 To color.Length - 1 color(i) = rnd.Next(0, 255) Next Dim colorString = color(0).ToString("X2") & color(1).ToString("X2") & color(2).ToString("X2") Dim rgbString as String = color(0) & "," & color(1) & "," & color(2) hs.PluginFunction("JowiHue", "", "SetLightsRGB", {True, "hugo-ceiling-lamp", Nothing, rgbString, 5}) End Sub  (@Moskus, er det mye styr Ă„ fĂ„ lagt inn VB.NET som sprĂ„k i codesnippet i forumet? Hadde vĂŠrt greit mtp syntaksmarkering) Siter
ZoRaC Skrevet 12. april 2020 Skrevet 12. april 2020 17 minutter siden, ĂysteinHJ skrev: Javisst  I pĂ„vente av svar sĂ„ laget jeg et script selv.  En kombinasjon av scriptet til @Moskus (https://www.hjemmeautomasjon.no/forums/topic/30-script-randomvaluevb-sett-en-tilfeldig-verdi-pĂ„-en-eller-flere-devicer/) og @Gjelsvik (https://www.hjemmeautomasjon.no/forums/topic/3492-script-styre-farger-pĂ„-jowiehue-trĂ„dfri/).  Siden jeg kjĂžrer pĂ„ Linux sĂ„ slet jeg med at jeg fikk feilmelding i loggen: Sitat Apr-12 18:21:41  Error Compiling script /usr/local/HomeSeer/scripts/ikea-random-rgb.vb: http://mono-project.com/Bugs) Apr-12 18:21:41  Error Compiling script /usr/local/HomeSeer/scripts/ikea-random-rgb.vb: The import 'System.Core' could not be found.  Det skyldes hs.PluginFunction (har opplevd det samme fĂžr). Dette er visstnok "feil", men virker likevel pĂ„ Windows: hs.PluginFunction("JowiHue", "", "SetLightsRGB", {True, "hugo-ceiling-lamp", Nothing, rgbString, 5}) Riktig syntax er: hs.PluginFunction("JowiHue", "", "SetLightsRGB", New Object(){True, "hugo-ceiling-lamp", Nothing, rgbstring,5}) Mitt script ble da slik: Public Sub Main(ByVal param As String) Dim generator As New System.Random Dim r,g,b as Integer Dim rgbstring as String r = generator.Next(0, 255) g = generator.Next(0, 255) b = generator.Next(0, 255) rgbstring = r & "," & g & "," & b hs.writelog("rndcolor", "Lys ["& param &"] skiftet farge til " & rgbstring) hs.PluginFunction("JowiHue", "", "SetLightsRGB", New Object(){False, param, Nothing, rgbstring,5}) End Sub  Siter
Moskus Skrevet 12. april 2020 Skrevet 12. april 2020 30 minutter siden, ZoRaC skrev: Riktig syntax er: hs.PluginFunction("JowiHue", "", "SetLightsRGB", New Object(){True, "hugo-ceiling-lamp", Nothing, rgbstring,5}) ... har ikke det alltid vĂŠrt riktig syntax?  47 minutter siden, ĂysteinHJ skrev: (@Moskus, er det mye styr Ă„ fĂ„ lagt inn VB.NET som sprĂ„k i codesnippet i forumet? Hadde vĂŠrt greit mtp syntaksmarkering) Pass, men vi pinger @iblis!  Siter
ZoRaC Skrevet 12. april 2020 Skrevet 12. april 2020 3 minutter siden, Moskus skrev: har ikke det alltid vĂŠrt riktig syntax? Jo, men de fleste har ikke med «New Object()» i eksemplene i sine manualer - det gjelder bĂ„de JowiHue og (tidligere) DeviceHistory (ble rettet nĂ„r jeg fant ut av det).  Dette er eksemplet i JowiHue-manualen: Sitat Syntax: Dim test As Boolean = hs.PluginFunction("JowiHue", "", "SetLightsRGB", {True, "All Lights", Nothing, â255,255,0â, 20}) ...som altsĂ„ er feil. Siter
Moskus Skrevet 12. april 2020 Skrevet 12. april 2020 Ah, OK. Jeg har faktisk aldri sett at kun {} fungerer alene, men sÄ har jeg ikke prÞvd uten New Object() pÄ mange Är heller... Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nÄ og registrere deg senere. Hvis du har en konto, logg inn nÄ for Ä poste med kontoen din.