Skicka signaler ifrån sensor via eventghost till hemsida.

Moderator: Telldus

Post Reply
Skogsmulle
Posts: 14
Joined: Fri Mar 17, 2023 9:45 am

Skicka signaler ifrån sensor via eventghost till hemsida.

Post by Skogsmulle »

Hej.

Jag skulle vilja skicka en temperatur ifrån min sensor till min interna hemsida genom eventghost.
Har haft en "guide" att följa, men får det ändå inte att fungera.

"1) Få Tellstick Dou (svårt att få tyvärr), och en kompatibel temperaturgivare
(Listan över enheter som stöds i Telldus hemsida)

2) Installera Telldus Duo plugin i Eventghost

3) Ta ID temperaturgivaren i “aktivitetslistan” inom Eventghost

4) Skapa ett nytt makro baserad på händelsen (t ex. “TellstickDuo.fineoffset.temeraturehumidity.213.Temperature:”)

5) Lägg till ett Phytom Script till makrot med följande skript:

——
p = eg.event.payload
p = p.split(‘|')
outtemp213 = p[0]
eg.globals.outtemp213 = outtemp213
# skriva ut outtemp213
——
(sista raden är för felsökning,
namnge vilka parametrar som 213 kommer att se till ha flera givare,
inget fel hantering om givare försvinner ingår)

6) i index.html – header-hgroup sektionen lägger:

Min Street 1
Utetemperatur: {{eg.globals.outtemp213}} °C

7) njuta :-)

8) Om du vill att sidan ska alltid vara uppdaterad överväga att använda:

9) Och om du har flera sensorer för fukt och teperature etc. Du kan alltid göra en “Fliken Väder” med alla värden.
Jag kan dela en om någon behöver det för att få inspiration

För att lägga till information om när temp uppdaterades överväga folloing uppdatering av phyton skriptet:

importera datetime
Nu = datetime.datetime.now()
outtemp213time = now.strftime(“%Y-% m-% d% H:%M”)
eg.globals.outtemp213time = outtemp213time

och följande tillägg till html:

({{eg.globals.outtemp213time}})"

Får upp temperaturen i eventghost som updaterar ca varje minut, och har ändrat id till 171 som är mitt id för sensor.
På hemsidan så får jag inte upp någon data, vet någon vad felet är?

I eventghost så har jag skapat en händelse, sedan till den kopplat pytonsciptet i samma träd.
MatsG
Posts: 3
Joined: Fri Mar 17, 2023 9:45 am

Re: Skicka signaler ifrån sensor via eventghost till hemsida

Post by MatsG »

Hej hej !

Jag har löst det genom att EvenGhost sparar värdena till en SQL-databas med ett pythonscript.
Sedan hämtar en fristående ASP.net-sida värdena ifrån SQL-servern och presenterar det med Google Charts (https://developers.google.com/chart/)


///Mats
Rauna
Posts: 3
Joined: Fri Mar 17, 2023 9:45 am

Re: Skicka signaler ifrån sensor via eventghost till hemsida

Post by Rauna »

Hej

Jag skulle gärna vilja veta hur phyton scriptet ser som du har för att skicka värden till sql-databas.
Det är exakt det jag söker :D

Kenneth
Eldritch
Posts: 16
Joined: Fri Mar 17, 2023 9:45 am

Re: Skicka signaler ifrån sensor via eventghost till hemsida

Post by Eldritch »

Låter mycket intressant! :D
MatsG
Posts: 3
Joined: Fri Mar 17, 2023 9:45 am

Re: Skicka signaler ifrån sensor via eventghost till hemsida

Post by MatsG »

Ojojoj, ber om ursäkt !
Har inte varit så aktiv här, ska nog aktivera nån sorts mail-påminnelse när någon svarar :)

Så här ser mitt lilla script ut.
import string
import pyodbc
import datetime
Text = eg.event.payload
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=SERVERNAMN\RFXTRX;DATABASE=EventGhost;UID=sa;PWD=XXXXX')
cursor = cnxn.cursor()
cursor.execute("SELECT MAX(UniqeID) as UnID from TempHumidity")
for row in cursor:
UID = row.UnID +1
GivareID = 1
Temp = Text[string.find(Text,'temperature')+13:string.find(Text,'deg C')-1]
Humidity = Text[string.find(Text,'humidity')+10:string.find(Text,'RH status')-2]
Status = Text[string.find(Text,'status')+8:string.find(Text,'signal')-1]
Signal = Text[string.find(Text,'signal')+8:string.find(Text,'battery')-1]
Battery = Text[string.find(Text,'battery')+9:len(Text)]
Datum = datetime.datetime.now()
TidDatum = Datum

cursor.execute("INSERT INTO TempHumidity(UniqeID, GivareID, Temp, Humidity, Status, Signal, Battery, TidDatum) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", UID, GivareID, Temp, Humidity, Status, Signal, Battery, TidDatum)
cnxn.commit()
cnxn.close
del cnxn
Det jag får ifrån eg.event.payload och hamnar i Text-variabeln är nått liknande
"19:28:03 RFXtrx.Type: THGN122/123, THGN132, THGR122/228/238/268 id: 56833 ' temperature: +14.4 deg C humidity: 92 %RH status: wet signal: 6 battery: 9'"
Därför jag använder string.find för att leta på lämliga värden

Nu var det några månader sen jag skrev detta men har för mig att pyodbc är ett tillägg till Python, var tvungen att installera Python på min server (Windows Server 2008) och lägga till tillägget där.


Fråga gärna mer, ska försöka vara snabbare att svara :)
Post Reply