Søk i nettsamfunnet
Viser resultater for emneknaggene 'lua'.
Fant 9 resultater
-
Tibber i Logic Machine / Wiser (LUA)?
stemic01 publiserte et emne i Strømsparing og strøm-overvåkning
Hei, ser det er mange kloke hoder her. Er det noen her som kunnskap om hvordan jeg kan integrere Tibber data inn i LogicMachine verden slik at jeg kan få ut øyeblikksbilder og logge trender der? - Øyeblikksforbruk (FRA PULSE) - Andre forbruksdata ala de du finner i appen (Siste 10min, Siste time, osv dersom det er enkelt å hente det ut fra Tibber API) - Pris nå - Pris hittil denne måned Ser der finnes noe her som tar for seg det som går på prisen, men ikke det øvrige: https://forum.logicmachine.net/showthread.php?tid=2185 Bør vel logges via en gruppeadresse der man setter inn logg/trend på denne? Noen som har mulighet til å bidra med noe her? EDIT: Selvsagt en mulighet å montere inn og integrere en home-assistant der det finnes tilnærmet ferdig løsning mot Tibber og lage integrasjon mot KNX. Men det blir nok en dings og nok ett system å ha kontroll på. Hadde håpet å unngå å integrere flere systemer enn nødvendig. Veldig gjerne integrasjon direkte i LogicMachine om det er mulig. Det tror jeg det skal være for dem som kan det. Er ikke sterk nok i å programmere i LUA til at jeg fant ut hvordan få det til. Thanx- 1 svar
-
- tibber
- logicmachine
-
(og 2 andre)
Merket med:
-
Hei jeg er helt fersk her på forumet, og har hatt Vera Plus og HeatIt termostat i litt over et år. Termostaten har ikke kapasitet til å styre flere ovner nå, så jeg har tenkt å styre en egen "Z-wave" panelovn ved å lese av status på temostaten og lage en egen scene for dette formålet. Prøvde å finne variabler som inneholdt en av på status, men fant ingen som jeg klarte å bruke. Det eneste synes å være romtempraturen og setpoint for temperatur. Tenkte da å slå på den eksterne panelovn være på så lenge romtemperatur er under setpoint temperaturen. Så langt er det greit. men den defaulte generelle termostaten i Vera synes ikke være helt lett å bruke. Men har ikke funnet noen HeatIt termostat i Vera, eller noen som har programmer noen. Nå vet jeg foreløpig lite om hvordan man programmerer en ny termostat i Vera, og lua kjenner jeg ikke fra før. Mine spørsmål er: 1a) Vet noen Om det laget eller funnet noen bedre "termostat" i Vera som kan brukes på HeatIt? 1b) Noen som vet hvordan man kan programmere en slik "virituel" termostat som man kan pare mot en termostat? 2) Finnes det dokumentasjon på hvordan man programmere lua i Vera? Så til det spørsmålet jeg lurer på. 3) Finnes det en god måte lage "en scene" i lua som slår på den eksterne panelovnen Amj
-
Hei noen som kan få denne koden til å fungere? ønsker av bevegelsesensor skal slå på lyset om lysbryter er av, bevegelse oppdaget og lux under 20. Da skal lyset gå av etter 60 sekunder. men om lysbryter blir slått på skal lyset stå på til bryter slås av --[[ %% properties 143 value 145 value 141 value %% weather %% events %% globals --]] local startSource = fibaro:getSourceTrigger(); if ( ( tonumber(fibaro:getValue(143, "value")) > 0 ) and ( tonumber(fibaro:getValue(145, "value")) > 20 ) and ( tonumber(fibaro:getValue(141, "value")) == 0 ) or startSource["type"] == "other" ) then fibaro:call(140, "turnOn"); and ( setTimeout(function() fibaro:call(140, "turnOff"); end, 60000) if (FIBARO:getvalue(141, "value")) ==0) ) end or if Fibaro:getvalue(141, "value")) > 0) then FIBARO:Call(140, "turnOn")) and FIBARO:getvalue(141, "value")) ==0) then setTimeout(function() fibaro:call(140, "turnOff"); end, 5000 )
-
LUA kode for å registrere om mobil/nettbrett er tilkoblet wifi nettet.
Teza publiserte et emne i Fibaro Home Center
Ettersom jeg ikke kan LUA programmering, blir enhver liten idé til et helt prosjekt. Jeg prøver å sette opp HC2 fra bunnen av, med LUA i stedet for blokk scener. I håp om at andre har en bedre fungerende løsning de kan dele, eller prøver å finne en løsning på samme utfordring, poster jeg min kode. Det jeg ønsker å oppnå: Når jeg er på jobb, har jeg alltid med nettbrett, ellers ligger nettbrett alltid hjemme. Vil derfor ha en variabel som anngir om jeg er på jobb eller hjemme. Dersom telefonen min er hjemme, er jeg hjemme, hvis ikke, er jeg borte. Vil ha en variabel som forteller om jeg er hjemme eller borte. Med disse 2 variablene kan systemet skille mellom om jeg er hjemme, borte eller på jobb. Utfordringer med denne koden: Dersom telefonen går i standby, forsvinner den fra wifi nettverket. -------------------------------------------------------------------------------------- -- Create a virtual device, and 2 variables named -- -- Nettbrett_hjemme and Note8_hjemme. -- -- Copy this code into main loop of VD -- -------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------- -- Setup -- -------------------------------------------------------------------------------------- local device1 = "00:00:00:00:00:00"; -- mac adress of device 1, Huawei M2-801L local device2 = "00:00:00:00:00:00"; -- mac adress of device 2, Samsung Galaxy Note 8 local Away = 15; -- Minutes delay before setting a device as away from home, if not found local ProgramDelay = 5; -- seconds delay between each time the program runs -------------------------------------------------------------------------------------- -- Checking if device is registered in wifi network -- -------------------------------------------------------------------------------------- local HC2 = Net.FHttp("127.0.0.1", 11111); -- Do not change IP or port! for j=1,4 do local response, status, errorCode = HC2.POST(HC2, "/api/networkDiscovery/arp", "{}"); local jsonTable = json.decode(response) fibaro:debug ("response "..response); for i, name in ipairs(jsonTable) do if(name['mac'] == device1) then fibaro:setGlobal("Nettbrett_hjemme", 1); -- variable name elseif(name['mac'] == device2) then fibaro:setGlobal("Note8_hjemme", 1); -- variable name end end end -------------------------------------------------------------------------------------- -- Timer, for setting device status to away -- -------------------------------------------------------------------------------------- local Device1Time = fibaro:getGlobalModificationTime("Nettbrett_hjemme"); -- variable name local Device2Time = fibaro:getGlobalModificationTime("Note8_hjemme"); -- variable name local TimeNow = os.time() local Device1Away = TimeNow - Device1Time local Device2Away = TimeNow - Device2Time if(Device1Away >= (Away * 60)) then fibaro:setGlobal("Nettbrett_hjemme", 0); -- variable name end if(Device2Away >= (Away * 60)) then fibaro:setGlobal("Note8_hjemme", 0); -- variable name end fibaro:debug ("Modification time device 1 "..Device1Time); fibaro:debug (os.date('%A, %B %d %Y at %H:%M UTC', Device1Time)); fibaro:debug ("Modification time device 2 "..Device2Time); fibaro:debug (os.date('%A, %B %d %Y at %H:%M UTC', Device2Time)); fibaro:debug (os.date('%A, %B %d %Y at %H:%M UTC', TimeNow)); fibaro:debug ("Time since change, device 1 "..Device1Away); fibaro:debug ("Time since change, device 1 "..Device2Away); fibaro:sleep(ProgramDelay*1000); -
For å kunne lage gode scener for styring av lys, varme og annet, vil jeg tro man må ha en del variabler som kan fortelle systemet hvordan omgivelsene er. Har prøvd å lage en scene som setter følgende variabler: Soltid, med verdiene: Soloppgang, Solnedgang Ukedag, med verdiene: Mandag, Tirsdag, Onsdag, Torsdag, Fredag, Lørdag, Søndag Maaned, med verdiene: Januar, Februar, Mars, April, Mai, Juni... ...Desember Leggetid, med verdiene: Sover, Våken LUA koden for disse 4, er i bunnen av denne posten. (Har ikke fått sjekket om den fungerer enda.) Min neste utfordring er en variabel som heter årstid, med verdiene: Vår, Sommer, Høst, Vinter. Kriteriene for denne variabelen skal være: Årstid vår: Den delen av året da normal døgnmiddeltemperatur for det aktuelle stedet er mellom 0 og 10 °C og stigende. Fra ca. 5. februar til ca. 6. mai. (midtpunkt=vårjevndøgn=ca. 21. mars) Årstid sommer: Den delen av året da døgnmiddeltemperaturen er over 10 ° C Fra ca. 7. mai til ca. 6. august. (midtpunkt=sommersolverv=ca. 21. juni) Årstid høst: Den delen av året da normal døgnmiddeltemperatur for det aktuelle stedet er mellom 0 og 10 °C og synkende. Fra ca. 7. august til ca. 16. november. (midtpunkt=høstjevndøgn=ca. 23. september) Årstid vinter: Den delen av året da døgnmiddeltemperaturen er under 0 ° C Fra ca. 17. november til ca. 5. februar. (midtpunkt=vintersolverv=ca. 22. desember) Noen gode tips for styring av variabelen årstid? ------ Her er koden for de første 4 variablene: --[[ %% autostart %% properties %% globals --]] -- Opprett Variabelen: Soltid -- med verdiene: Soloppgang, Solnedgang -- Opprett variabelen: Ukedag -- med verdiene: Mandag, Tirsdag, Onsdag, Torsdag, Fredag, Lørdag, Søndag -- Opprett variabelen: Maaned -- med verdiene: Januar, Februar, Mars, April, Mai, Juni... ...Desember -- Opprett variabelen: Leggetid -- med verdiene: Sover, Våken local sourceTrigger = fibaro:getSourceTrigger(); -- Hva har startet scenen? if (sourceTrigger["type"] == "autostart") then; -- Hvis scenen er startet med autostart: while true do; -- Så lenge scenen er startet med autostart, kjør: local TidsTabell = os.date("*t"); -- TidsTabell vil genereres og se ut som følger: -- year 2018 -- month 01-12 -- day 01-31 -- hour 00-23 -- min 00-59 -- sec 00-59 -- isdst et boolean, "true" hvis sommertid, ellers "false" local Tid = (string.format("%02d", TidsTabell.hour) .. ":" .. string.format("%02d", TidsTabell.min)); -- "%02d" 0 padding, 2 heltall, d for desimaltall local Dag = tonumber(os.date("%w")); local Mnd = tonumber(os.date("%m")); local Soloppgang = fibaro:getValue(1, "sunriseHour"); -- Henter tidspunkt for soloppgang local Solnedgang = fibaro:getValue(1, "sunsetHour"); -- Henter tidspunkt for solnedgang local startSource = fibaro:getSourceTrigger(); -- Setter variabel Soltid: if (Tid == Soloppgang) then; -- Hvis tid er lik tiden for soloppgang, da fibaro:setGlobal("Soltid","Soloppgang"); -- settes variabelen Soltid til Soloppgang end; if (Tid == Solnedgang) then; -- Hvis tid er lik tiden for solnedgang, da fibaro:setGlobal("Soltid","Solnedgang"); -- settes variabelen Soltid til Solnedgang end; -- Setter variabel Ukedag: if(Dag == 0 and Tid == "00:00") then; fibaro:setGlobal("Ukedag", "Søndag"); fibaro:call(2, "sendDefinedEmailNotification", "15"); -- Beskjeden "Variabel Ukedag er endret", sendes på epost elseif(Dag == 1 and Tid == "00:00") then; fibaro:setGlobal("Ukedag", "Mandag"); fibaro:call(2, "sendDefinedEmailNotification", "15"); elseif(Dag == 2 and Tid == "00:00") then; fibaro:setGlobal("Ukedag", "Tirsdag"); fibaro:call(2, "sendDefinedEmailNotification", "15"); elseif(Dag == 3 and Tid == "00:00") then; fibaro:setGlobal("Ukedag", "Onsdag"); fibaro:call(2, "sendDefinedEmailNotification", "15"); elseif(Dag == 4 and Tid == "00:00") then; fibaro:setGlobal("Ukedag", "Torsdag"); fibaro:call(2, "sendDefinedEmailNotification", "15"); elseif(Dag == 5 and Tid == "00:00") then; fibaro:setGlobal("Ukedag", "Fredag"); fibaro:call(2, "sendDefinedEmailNotification", "15"); elseif(Dag == 6 and Tid == "00:00") then; fibaro:setGlobal("Ukedag", "Lørdag"); fibaro:call(2, "sendDefinedEmailNotification", "15"); end; -- Setter variabel Maaned if(Mnd == 01 and string.format("%02d", TidsTabell.day == "01") and Tid == "00:00") then; fibaro:setGlobal("Maaned", "Januar"); fibaro:call(2, "sendDefinedEmailNotification", "123"); -- Beskjeden "Variabel Måned er endret", sendes på epost elseif(Mnd == 02 and string.format("%02d", TidsTabell.day == "01") and Tid == "00:00") then; fibaro:setGlobal("Maaned", "Februar"); fibaro:call(2, "sendDefinedEmailNotification", "123"); elseif(Mnd == 03 and string.format("%02d", TidsTabell.day == "01") and Tid == "00:00") then; fibaro:setGlobal("Maaned", "Mars"); fibaro:call(2, "sendDefinedEmailNotification", "123"); elseif(Mnd == 04 and string.format("%02d", TidsTabell.day == "01") and Tid == "00:00") then; fibaro:setGlobal("Maaned", "April"); fibaro:call(2, "sendDefinedEmailNotification", "123"); elseif(Mnd == 05 and string.format("%02d", TidsTabell.day == "01") and Tid == "00:00") then; fibaro:setGlobal("Maaned", "Mai"); fibaro:call(2, "sendDefinedEmailNotification", "123"); elseif(Mnd == 06 and string.format("%02d", TidsTabell.day == "01") and Tid == "00:00") then; fibaro:setGlobal("Maaned", "Juni"); fibaro:call(2, "sendDefinedEmailNotification", "123"); elseif(Mnd == 07 and string.format("%02d", TidsTabell.day == "01") and Tid == "00:00") then; fibaro:setGlobal("Maaned", "Juli"); fibaro:call(2, "sendDefinedEmailNotification", "123"); elseif(Mnd == 08 and string.format("%02d", TidsTabell.day == "01") and Tid == "00:00") then; fibaro:setGlobal("Maaned", "August"); fibaro:call(2, "sendDefinedEmailNotification", "123"); elseif(Mnd == 09 and string.format("%02d", TidsTabell.day == "01") and Tid == "00:00") then; fibaro:setGlobal("Maaned", "September"); fibaro:call(2, "sendDefinedEmailNotification", "123"); elseif(Mnd == 10 and string.format("%02d", TidsTabell.day == "01") and Tid == "00:00") then; fibaro:setGlobal("Maaned", "Oktober"); fibaro:call(2, "sendDefinedEmailNotification", "123"); elseif(Mnd == 11 and string.format("%02d", TidsTabell.day == "01") and Tid == "00:00") then; fibaro:setGlobal("Maaned", "November"); fibaro:call(2, "sendDefinedEmailNotification", "123"); elseif(Mnd == 12 and string.format("%02d", TidsTabell.day == "01") and Tid == "00:00") then; fibaro:setGlobal("Maaned", "Desember"); fibaro:call(2, "sendDefinedEmailNotification", "123"); end; -- Setter variabel Leggetid: if (Tid == "23:30") then; fibaro:setGlobal("Leggetid","Sover"); -- settes variabelen Leggetid til Sover end; if (Tid == "08:00") then; fibaro:setGlobal("Leggetid","Våken"); -- settes variabelen Leggetid til Våken end; fibaro:sleep(60*1000); -- Vent 60 sekunder før programmet kjører igjen end; else; -- Hvis scenen er startet manuelt: local Soltid = fibaro:getGlobalValue("Soltid"); if (Soltid == "Solnedgang") then; fibaro:setGlobal("Soltid","Soloppgang") else; fibaro:setGlobal("Soltid","Solnedgang") end; end; Mitt første forsøk på et brukende LUA program. Føler det er en del repetisjoner der som burde vært unngått...
-
Har prøvd å få hjelp på Fibaro sitt forum uten hell. Slik jeg har forstått det skal det være mulig å få verdier fra en UradMonitor inn i HC2 systemet. Ved å skrive inn en lokal ip adresse: http://192.168.8.106/j vil enheten min returnere følgende: {"data":{ "id":"8200007A","type":"8","detector":"SI29BG","voltage":382,"cpm":10,"temperature":8.96,"humidity":38.76,"pressure":100326,"voc":12799999,"co2":483,"noise":38,"ch2o":0.01,"pm25":0,"uptime": 153033}} Ønsker å få disse verdiene inn i systemet men har ingen kunnskap om hvordan dette kan gjøres. Strengen over gir følgende verdier: Temperature Pressure Humidity VOC PM2.5 Formaldehyde Carbon Dioxide γ,x-rays Har sjekket med Fibaro support, men de vil ikke gi noen tips eller hjelp. Følgende tråd jeg startet på Fibaro forumet inneholder det jeg tror er en fungerende kode for homeseer, men vet ikke om dette kan la seg konvertere til Fibaro sitt system? Noen tips om hvordan jeg kan komme i mål?
-
Er det noen som kjenner til en god "how to guide" for programmering av lua kode til HC2?
-
hei! Etter å ha lest en post om at blockly er grunnen til at minnet blir oppbrukt på raspberry pi3, har jeg skrevet om alle mine blocklier til LUA, bortsett fra 1. Jeg klarer ikke definere. Prøver å få det slik som det er på bildet. Tempsensoren er en multisensor med temperatur og luftfuktighet, så hvordan jeg skal kun hente temp aner jeg heller ikke. Noen som vet? Mvh John Henrik local termostatGang = 'Gang-Varme-Termostat' commandArray = {} if (devicechanged['Gang-Temp-Sensor'] < termostatGang) then commandArray['Gang-Varmekabler']='On' end return commandArray
-
Siden jeg ikke kan programmere så blir det litt klipp og lim for å få ting til å funke.. Jeg prøver å lage ett script som beregner deltaT på den vannbårne varmen min.. Dette skriptet fungerer, men kjører da hver gang en av temperaturene får en oppdatering, mao veldig ofte: local tur1 = 'Vaskerom-TUR' local retur1 = 'Vaskerom-RETUR' local deltat1_idx = 559 local tur2 = 'Gang-TUR' local retur2 = 'Gang-RETUR' local deltat2_idx = 560 local tur3 = 'Kjøkken N-TUR' local retur3 = 'Kjøkken N-RETUR' local deltat3_idx = 561 local tur4 = 'Kjøkken S-TUR' local retur4 = 'Kjøkken S-RETUR' local deltat4_idx = 562 local tur5 = 'TV Stue-TUR' local retur5 = 'TV Stue-RETUR' local deltat5_idx = 563 local tur6 = 'Bibliotek-TUR' local retur6 = 'Bibliotek-RETUR' local deltat6_idx = 564 commandArray = {} if devicechanged['Vaskerom-TUR'] then tur1 = otherdevices_svalues['Vaskerom-TUR'] retur1 = otherdevices_svalues['Vaskerom-RETUR'] tur_temp1 = tonumber(tur1) retur_temp1 = tonumber(retur1) commandArray['UpdateDevice'] = deltat1_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp1 - retur_temp1) elseif devicechanged['Gang-TUR'] then tur2 = otherdevices_svalues['Gang-TUR'] retur2 = otherdevices_svalues['Gang-RETUR'] tur_temp2 = tonumber(tur2) retur_temp2 = tonumber(retur2) commandArray['UpdateDevice'] = deltat2_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp2 - retur_temp2) elseif devicechanged['Kjøkken N-TUR'] then tur3 = otherdevices_svalues['Kjøkken N-TUR'] retur3 = otherdevices_svalues['Kjøkken N-RETUR'] tur_temp3 = tonumber(tur3) retur_temp3 = tonumber(retur3) commandArray['UpdateDevice'] = deltat3_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp3 - retur_temp3) elseif devicechanged['Kjøkken S-TUR'] then tur4 = otherdevices_svalues['Kjøkken S-TUR'] retur4 = otherdevices_svalues['Kjøkken S-RETUR'] tur_temp4 = tonumber(tur4) retur_temp4 = tonumber(retur4) commandArray['UpdateDevice'] = deltat4_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp4 - retur_temp4) elseif devicechanged['TV Stue-TUR'] then tur5 = otherdevices_svalues['TV Stue-TUR'] retur5 = otherdevices_svalues['TV Stue-RETUR'] tur_temp5 = tonumber(tur5) retur_temp5 = tonumber(retur5) commandArray['UpdateDevice'] = deltat5_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp5 - retur_temp5) elseif devicechanged['Bibliotek-TUR'] then tur6 = otherdevices_svalues['Bibliotek-TUR'] retur6 = otherdevices_svalues['Bibliotek-RETUR'] tur_temp6 = tonumber(tur6) retur_temp6 = tonumber(retur6) commandArray['UpdateDevice'] = deltat6_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp6 - retur_temp6) end return commandArray Jeg prøvde å gjøre det om til ett time-script som kjøres en gang pr min, men problemet er at det kun oppdaterer "deltaT_idx6". Noen som ser hva som er feil? local tur1 = 'Vaskerom-TUR' local retur1 = 'Vaskerom-RETUR' local deltat1_idx = 559 local tur2 = 'Gang-TUR' local retur2 = 'Gang-RETUR' local deltat2_idx = 560 local tur3 = 'Kjøkken N-TUR' local retur3 = 'Kjøkken N-RETUR' local deltat3_idx = 561 local tur4 = 'Kjøkken S-TUR' local retur4 = 'Kjøkken S-RETUR' local deltat4_idx = 562 local tur5 = 'TV Stue-TUR' local retur5 = 'TV Stue-RETUR' local deltat5_idx = 563 local tur6 = 'Bibliotek-TUR' local retur6 = 'Bibliotek-RETUR' local deltat6_idx = 564 commandArray = {} tur1 = otherdevices_svalues['Vaskerom-TUR'] retur1 = otherdevices_svalues['Vaskerom-RETUR'] tur_temp1 = tonumber(tur1) retur_temp1 = tonumber(retur1) tur2 = otherdevices_svalues['Gang-TUR'] retur2 = otherdevices_svalues['Gang-RETUR'] tur_temp2 = tonumber(tur2) retur_temp2 = tonumber(retur2) tur3 = otherdevices_svalues['Kjøkken N-TUR'] retur3 = otherdevices_svalues['Kjøkken N-RETUR'] tur_temp3 = tonumber(tur3) retur_temp3 = tonumber(retur3) tur4 = otherdevices_svalues['Kjøkken S-TUR'] retur4 = otherdevices_svalues['Kjøkken S-RETUR'] tur_temp4 = tonumber(tur4) retur_temp4 = tonumber(retur4) tur5 = otherdevices_svalues['TV Stue-TUR'] retur5 = otherdevices_svalues['TV Stue-RETUR'] tur_temp5 = tonumber(tur5) retur_temp5 = tonumber(retur5) tur6 = otherdevices_svalues['Bibliotek-TUR'] retur6 = otherdevices_svalues['Bibliotek-RETUR'] tur_temp6 = tonumber(tur6) retur_temp6 = tonumber(retur6) commandArray['UpdateDevice'] = deltat1_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp1 - retur_temp1) commandArray['UpdateDevice'] = deltat2_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp2 - retur_temp2) commandArray['UpdateDevice'] = deltat3_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp3 - retur_temp3) commandArray['UpdateDevice'] = deltat4_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp4 - retur_temp4) commandArray['UpdateDevice'] = deltat5_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp5 - retur_temp5) commandArray['UpdateDevice'] = deltat6_idx .. '|0|' .. string.format("%." .. 1 .. "f", tur_temp6 - retur_temp6) return commandArray