Magnetkontakt och brytar status via python script.

Moderator: Telldus

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

Magnetkontakt och brytar status via python script.

Post by Skogsmulle »

Försöker få till så att statusen på magnetkontakterna och brytarna som finns här hemma ska skicka ut via python script.
Anledningen till detta är att jag vill kunna se på min interna hemsida ifrån eventghost om lamporna är påslagna eller om ytterdörren är öppen.

Koden som jag har skrivit ihop är säkert helt galen, dock skriven efter bästa förmåga men kan någon se vad som är fel så är jag tacksam.
(Får fel när den ska beskriva vad han ska "TRY")

Code: Select all

p = str(eg.event.payload)
name = 'Lampstatus'
id = 4
try:
    selflearning-switch:nexa.4

        if(
        selflearning-switch:nexa.4 == 'TellStickDuo.Kontor.ON'
        ):

            print status = 'ON'
            eg.globals.stats =  status
        if(
        selflearning-switch:nexa.4 == 'TellStickDuo.Kontor.OFF'
        ):

            print status = 'OFF'
            eg.globals.stats = status

Det som ska provas är med denna brytare som har id 4 som och är döpt till "TellStickDuo.Kontor.xx"
Zaman
Posts: 243
Joined: Fri Mar 17, 2023 9:45 am

Re: Magnetkontakt och brytar status via python script.

Post by Zaman »

try används för att kontrollera och hantera felmeddelanden och måste matchas av minst ett except-statement: http://docs.python.org/2/tutorial/errors.html
Exempel:

Code: Select all

>>> while True:
...     try:
...         x = int(raw_input("Please enter a number: "))
...         break
...     except ValueError:
...         print "Oops!  That was no valid number.  Try again..."
...
I ditt här fallet finns inga matchande except och dessutom ser första raden efter try: lite märklig ut. Vad är det tänkt att den raden ska göra?
krambriw
Posts: 654
Joined: Fri Mar 17, 2023 9:45 am

Re: Magnetkontakt och brytar status via python script.

Post by krambriw »

Du kan prova nedanstående script (jag gjorde det för en magnetkontakt).

mvh

Code: Select all

p = str(eg.event.suffix)
eg.globals.stats = ''

try:
    if(p == 'Magnetkontakt.ON'):
        eg.globals.stats =  'ON'
    if(p == 'Magnetkontakt.OFF'):
        eg.globals.stats = 'OFF'
except:
    pass

print eg.globals.stats
Skogsmulle
Posts: 14
Joined: Fri Mar 17, 2023 9:45 am

Re: Magnetkontakt och brytar status via python script.

Post by Skogsmulle »

["krambriw"]Du kan prova nedanstående script (jag gjorde det för en magnetkontakt).
mvh


Jag använde din variant då jag inte använder raw input, dock så får jag det inte att fungerara. Det blir inga problem med scriptet eller liknande dock så ändras det inte på hemsidan ifrån varken on eller off, utan är bara helt blankt.
Bifogar en bild för att få en bättre överbild där sciptet är markerat med blått och till vänster vad som händer i logg filen.

Image

Code: Select all

p = str(eg.event.suffix)
eg.globals.stats = ''
id = 4
try:
    if(p == 'TellStickDuo.Kontor.on'):
        eg.globals.stats =  'ON'
    if(p == 'TellStickDuo.Kontor.off'):
        eg.globals.stats = 'OFF'
except:
    pass

print eg.globals.stats
På hemsidan så har jag skrivit, vilket har fungerat för allt annat som jag vill ska synas där.

Code: Select all

{{eg.globals.stats}}
MVh
krambriw
Posts: 654
Joined: Fri Mar 17, 2023 9:45 am

Re: Magnetkontakt och brytar status via python script.

Post by krambriw »

Skogsmulle. du måste vara noggrannare när du editerar....

Du har använt små istället för STORA bokstäver, därför fungerar det inte. Det måste vara exakt matchning med texten i eventet.

Så här bör det vara (id = 4 kan du radera, behövs ju inte):

Code: Select all

p = str(eg.event.suffix)
eg.globals.stats = ''
#id = 4
try:
    if(p == 'TellStickDuo.Kontor.ON'):
        eg.globals.stats =  'ON'
    if(p == 'TellStickDuo.Kontor.OFF'):
        eg.globals.stats = 'OFF'
except:
    pass

print eg.globals.stats
Post Reply