Eventghost temperatur styrning?
Moderator: Telldus
-
- Posts: 59
- Joined: Fri Mar 17, 2023 9:45 am
Eventghost temperatur styrning?
Jag undrar hur nyttjar man tempen som man får fram i Eventghost?
När man har en tempgivare t.ex teknikmagasinets jenkinsbird så får man i loggen en rad som ser ut som så här.
" TellstickDuo.fineoffset.temperature.223.Temperature: '8.1|2012-10-22 18:07:17 '"
Hur skriver man då för att få den att trigga t.ex ett element eller dylikt om den går under 5grader?
Går ju att få den att trigga varje gång tempgivaren sänder nåt men det är kanske inte det man vill .
När man har en tempgivare t.ex teknikmagasinets jenkinsbird så får man i loggen en rad som ser ut som så här.
" TellstickDuo.fineoffset.temperature.223.Temperature: '8.1|2012-10-22 18:07:17 '"
Hur skriver man då för att få den att trigga t.ex ett element eller dylikt om den går under 5grader?
Går ju att få den att trigga varje gång tempgivaren sänder nåt men det är kanske inte det man vill .
Re: Eventghost temperatur styrning?
I den här tråden diskuteras detta utförligt. Principen blir densamma, det som skiljer är bara formatet på eventet i EG eftersom det kommer från en annan typ av transceiver.
http://www.eventghost.net/forum/viewtop ... f=2&t=3982
I den här tråden på sid 10 finns en liknande diskussion där man önskar slå på/av AC beroende på aktuell temperatur.
http://www.eventghost.net/forum/viewtop ... 120#p22325
mvh Walter
http://www.eventghost.net/forum/viewtop ... f=2&t=3982
I den här tråden på sid 10 finns en liknande diskussion där man önskar slå på/av AC beroende på aktuell temperatur.
http://www.eventghost.net/forum/viewtop ... 120#p22325
mvh Walter
Re: Eventghost temperatur styrning?
Du kan testa lite med scriptet nedan. Skapa ett makro med ett pythonscript i EG. Klistra in nedanstående script. Dra ditt event från din temperaturgivare till makrot.
Varje gång eventet kommer in körs därefter scriptet. Om tempen är lägre än lägsta nivån, kommer ett nytt event att genereras första gången. Detta drar du till ett nytt makro som innehåller påslagsfunktion för elementet. Om tempen sedan når din övre gräns så genereras ett nytt event första gången som du kan använda för att slå av elementet via ytterlligare ett makro med frånslagsfunktion.
Totalt skall du alltså definiera tre makron;
- ett för att utvärdera eventet från temp sensorn
- ett för att slå på elementet
- ett för att slå från elementet
mvh
Varje gång eventet kommer in körs därefter scriptet. Om tempen är lägre än lägsta nivån, kommer ett nytt event att genereras första gången. Detta drar du till ett nytt makro som innehåller påslagsfunktion för elementet. Om tempen sedan når din övre gräns så genereras ett nytt event första gången som du kan använda för att slå av elementet via ytterlligare ett makro med frånslagsfunktion.
Totalt skall du alltså definiera tre makron;
- ett för att utvärdera eventet från temp sensorn
- ett för att slå på elementet
- ett för att slå från elementet
mvh
Code: Select all
#Heating Unit Control
newEvent = str(eg.event.suffix)
newPayload = eg.event.payload
name = 'My Heating Unit'
id = 223
high_level = 10.0
low_level = 5.0
try:
status
except NameError:
status = ''
if newEvent.split('.')[3] == str(id):
temp = newPayload.split('|')[0]
if(
float(temp) > high_level
and (
status == 'ON'
or
status == ''
)
):
print status
eg.TriggerEvent(
name
+"|"
+'High Temp Level reached'
+"|"
+str(id)
)
status = 'OFF'
if(
float(temp) < low_level
and (
status == 'OFF'
or
status == ''
)
):
print status
eg.TriggerEvent(
name
+"|"
+'Low Temp Level reached'
+"|"
+str(id)
)
status = 'ON'
-
- Posts: 59
- Joined: Fri Mar 17, 2023 9:45 am
Re: Eventghost temperatur styrning?
Grymt, man tackar! Väldigt utförliga svar med eget script också ! Är helt ny på Eventghost men det känns riktigt kraftfullt får väl sätta mig in lite grundläggande i Python också. Känns som det kommer öka möjligheterna en hel del.krambriw wrote:I den här tråden diskuteras detta utförligt. Principen blir densamma, det som skiljer är bara formatet på eventet i EG eftersom det kommer från en annan typ av transceiver.
http://www.eventghost.net/forum/viewtop ... f=2&t=3982
I den här tråden på sid 10 finns en liknande diskussion där man önskar slå på/av AC beroende på aktuell temperatur.
http://www.eventghost.net/forum/viewtop ... 120#p22325
mvh Walter
Re: Eventghost temperatur styrning?
En termostat i form av ett script. Men det är ju sen det roliga börjar när man kan börja koppla detta till oika regler och eventuellt tidsstyrningar m.m
Det finns så oändligt med möjligheter,
Lycka till
Det finns så oändligt med möjligheter,
Lycka till
-
- Posts: 59
- Joined: Fri Mar 17, 2023 9:45 am
Re: Eventghost temperatur styrning?
Suttit ett tag med det nu men får ett felmeddelande som lyder.
23:41:40 Traceback (most recent call last):
23:41:40 Python script "23", line 14, in <module>
23:41:40 if newEvent.split('.')[3] == str(id):
23:41:40 IndexError: list index out of range
Eventet ser ut så här.
23:41:42 TellStickDuo.fineoffset.temperature.223.Temperature: '5.7|2012-10-23 23:41:42'
Vad kan vara fel?
Kanske fått allt om bakfoten men är det så att raden " if newEvent.split('.')[3] == str(id) "
Hämtar in det som står efter tredje punkten kollar så det är lika med id, stämmer det då går den vidare med skriptet?.
23:41:40 Traceback (most recent call last):
23:41:40 Python script "23", line 14, in <module>
23:41:40 if newEvent.split('.')[3] == str(id):
23:41:40 IndexError: list index out of range
Eventet ser ut så här.
23:41:42 TellStickDuo.fineoffset.temperature.223.Temperature: '5.7|2012-10-23 23:41:42'
Vad kan vara fel?
Kanske fått allt om bakfoten men är det så att raden " if newEvent.split('.')[3] == str(id) "
Hämtar in det som står efter tredje punkten kollar så det är lika med id, stämmer det då går den vidare med skriptet?.
Re: Eventghost temperatur styrning?
Prova att ändra
till
Code: Select all
if newEvent.split('.')[3] == str(id):
Code: Select all
if newEvent.split('.')[2] == str(id):
-
- Posts: 59
- Joined: Fri Mar 17, 2023 9:45 am
Re: Eventghost temperatur styrning?
Tackar för tipset hade dock redan provat det, men hittade iaf felet.
Jag hade lagt in eventet i macrot fel. Hade lagt in hela strängen genom att dra över den till macrot mellan fönstrena som det står att man kan göra. Men högerklickar man i macrot och väljer lägg till händelse då får man med eventet på det sättet det ska se ut .
Men jag lärde mig en del påvägen hur scriptet är uppbyggt. Grymt nöjd med den snabba supporten du håller !
Jag hade lagt in eventet i macrot fel. Hade lagt in hela strängen genom att dra över den till macrot mellan fönstrena som det står att man kan göra. Men högerklickar man i macrot och väljer lägg till händelse då får man med eventet på det sättet det ska se ut .
Men jag lärde mig en del påvägen hur scriptet är uppbyggt. Grymt nöjd med den snabba supporten du håller !
Re: Eventghost temperatur styrning?
Hur får man makrot att köras?
Om jag drar tempgivarens händelse till makrot så körs det som det ska men när temperaturen sjunker så skickar ju tempgivaren en annan händelse med lägre temperatur och då körs ju inte makrot.
Så ser min temphändelse ut:
TellStickDuo.RawEvent: class:sensor;protocol:fineoffset;model:temperaturehumidity;temp:6.0;humidity:0xFF;id:0xA8;Duo_ID:9
Finns det något "magiskt tecken man kan använda?
TellStickDuo.RawEvent: class:sensor;protocol:fineoffset;model:temperaturehumidity;%
TellStickDuo.RawEvent: class:sensor;protocol:fineoffset;model:temperaturehumidity;*
MVH Magnus
Om jag drar tempgivarens händelse till makrot så körs det som det ska men när temperaturen sjunker så skickar ju tempgivaren en annan händelse med lägre temperatur och då körs ju inte makrot.
Så ser min temphändelse ut:
TellStickDuo.RawEvent: class:sensor;protocol:fineoffset;model:temperaturehumidity;temp:6.0;humidity:0xFF;id:0xA8;Duo_ID:9
Finns det något "magiskt tecken man kan använda?
TellStickDuo.RawEvent: class:sensor;protocol:fineoffset;model:temperaturehumidity;%
TellStickDuo.RawEvent: class:sensor;protocol:fineoffset;model:temperaturehumidity;*
MVH Magnus
Re: Eventghost temperatur styrning?
Scriptet ovan är designat så att det bara ska köras en gång när de inställda temperaturgränserna low/high passeras. Oklart vad/hur du vill göra!?
mvh
mvh
-
- Posts: 14
- Joined: Fri Mar 17, 2023 9:45 am
Re: Eventghost temperatur styrning?
Passar på att låna tråden lite, har samma problem.
Så här följer min uppställning.
Hittar sensorn i Telldus center har id 230 och model 1A2D.
2. I eventghost så updateras värden med jämna mellanrum, ibland ofta och ibland inte lika ofta det står. “TellStickDuo.oregon.1A2D.230.Temperature: ’23.5|2012-10-15 22:44:03′”
So far så good..
3.Mitt Python script är följande:
p = eg.event.payload
p = p.split(‘|’)
outtemp230 = p[0]
eg.globals.outtemp230 = outtemp230
skriva ut outtemp230
importera datetime
Nu = datetime.datetime.now()
outtemp230time = now.strftime(“%Y-% m-% d% H:%M”)
eg.globals.outtemp230time = outtemp230time
4. När har skrivit sciptet och trycker och får jag upp varningen:
Error compiling script.
Traceback (most recent call last):
SyntaxError: invalid syntax (10, line 2)
5. Det är där det inte fungerar.
6. Texten på hemsidan:
Eventghost Web Gui
hemskärm
Min Street 1
Utetemperatur:{{eg.globals.outtemp230}} °C
Några förslag på vad som kan vara fel? Får det att fungerara mellanåt när jag sitter och trycker test ett ex antal ggr i scipt edit.
Så här följer min uppställning.
Hittar sensorn i Telldus center har id 230 och model 1A2D.
2. I eventghost så updateras värden med jämna mellanrum, ibland ofta och ibland inte lika ofta det står. “TellStickDuo.oregon.1A2D.230.Temperature: ’23.5|2012-10-15 22:44:03′”
So far så good..
3.Mitt Python script är följande:
p = eg.event.payload
p = p.split(‘|’)
outtemp230 = p[0]
eg.globals.outtemp230 = outtemp230
skriva ut outtemp230
importera datetime
Nu = datetime.datetime.now()
outtemp230time = now.strftime(“%Y-% m-% d% H:%M”)
eg.globals.outtemp230time = outtemp230time
4. När har skrivit sciptet och trycker och får jag upp varningen:
Error compiling script.
Traceback (most recent call last):
SyntaxError: invalid syntax (10, line 2)
5. Det är där det inte fungerar.
6. Texten på hemsidan:
Eventghost Web Gui
hemskärm
Min Street 1
Utetemperatur:{{eg.globals.outtemp230}} °C
Några förslag på vad som kan vara fel? Får det att fungerara mellanåt när jag sitter och trycker test ett ex antal ggr i scipt edit.
Re: Eventghost temperatur styrning?
Det är bättre att du klistrar in din aktuella kod istället så att man kan kolla din syntax och se vad som är snett
Du kan till att börja med ändra dom första två raderna enligt nedan och se om det hjälper
Du kan till att börja med ändra dom första två raderna enligt nedan och se om det hjälper
Code: Select all
p = str(eg.event.payload)
p = p.split("|")
-
- Posts: 14
- Joined: Fri Mar 17, 2023 9:45 am
Re: Eventghost temperatur styrning?
Min aktuella kod är som den är nu ner bantad till enbart:krambriw wrote:Det är bättre att du klistrar in din aktuella kod istället så att man kan kolla din syntax och se vad som är snett
Du kan till att börja med ändra dom första två raderna enligt nedan och se om det hjälper
Code: Select all
p = str(eg.event.payload) p = p.split("|")
p = str(eg.event.payload)
p = p.split("|")
outtemp230=p[0]
eg.globals.outtemp230 = outtemp230
Den ändringen som du skrev gjorde att error delen löste sig dock så står det nu på min interna hemsida står det "none" där det förut stod ett temperatur.
Edit: nu fick jag det att fungera, var ett litet stavfels miss i eventghost som gjorde att det inte lirade.
Men är det nu möjligt att använda följande kod för att kunna få med klockan som ska visa när den updaterades?
p = str(eg.event.payload)
p = p.split("|")
outtemp230 = p[0]
eg.globals.outtemp230 = outtemp230
importera datetime
Nu = datetime.datetime.now()
outtemp230time = now.strftime(“%Y-% m-% d% H:%M”)
eg.globals.outtemp230time = outtemp230time
Re: Eventghost temperatur styrning?
Jag gissar bara nu men du kanske behöver ett tal istället för en sträng,
Då kan du göra så här:
mvh
Då kan du göra så här:
Code: Select all
p = str(eg.event.payload)
p = p.split("|")
print p #ta bort senare när vi vet att du får tag i rätt data
outtemp230=float(p[0])
eg.globals.outtemp230 = outtemp230
-
- Posts: 14
- Joined: Fri Mar 17, 2023 9:45 am
Re: Eventghost temperatur styrning?
Den koden som du först skrev fungerarde helt perfekt efter att jag upptäckte ett skriv fel.krambriw wrote:Jag gissar bara nu men du kanske behöver ett tal istället för en sträng,
Då kan du göra så här:
mvhCode: Select all
p = str(eg.event.payload) p = p.split("|") print p #ta bort senare när vi vet att du får tag i rätt data outtemp230=float(p[0]) eg.globals.outtemp230 = outtemp230
Så postar den här iaf någon annan skulle vilja ta del av hur man enkelt får ut temperatur på hemsidan:
Code: Select all
p = str(eg.event.payload)
p = p.split("|")
outtemp230=p[0]
eg.globals.outtemp230 = outtemp230