Telldus – Znet Lite – Scriptning

Scripta mot Telldus Znet Lite på liknande sätt som Telldus DUO eller Tellstick!

powershell-logo

Har nu använt Telldus ZNET Lite för att styra bland annat motorvärmaren via 433Mhz.

Efter att ha utforskat möjligheterna i Telldus Live tjänsten valde jag att fortsätta mitt system för hemautomation med Powershell. Vi har tidigare skrivit en recension på Telldus ZNET Lite.

 

Jag hittade tidigare en väldigt välskriven Powershell modul för Telldus Live på DollarUnderscore hemsida. Jag kontaktade honom och fick ok att inkludera koden i Powershell modulen för hemautomation, koden delar vi nu fritt på Github. Funktionerna för Telldus Live som DollarUnderscore har skrivit är tydligt uppmärkta i koden.

Fördelen med att nyttja modulen för att styra olika händelser i Telldus Live är många. Bland annat är det möjligt att hämta in information från andra externa datorkällor och nyttja den informationen för att styra enheter.

 

Guide på hur du lägger till modulen

För att lägga till modulen på din dator behövs följande 3 steg göras (tar ca 3 minuter att göra):

Skapa en mapp som heter ”Automatiserar” under sökvägen ”C:\Program Files\WindowsPowerShell\Modules\

CreateTheFile

 

Spara den senaste versionen av modulen med namnet ”Automatiserar.psm1″ i mappen som heter ”Automatiserar”. Du kommer nu att få varning om att tillåta att filen ska skapas där, acceptera detta.

SkapaMappen

Ser det ut på följande sätt är det klart! modulen är nu ”installerad” och redo att användas!

 

Högerklicka på Powershell.exe och välj kör som administratör, Skriv ”Set-ExecutionPolicy remotesigned”, svara sedan ”Y” och tryck Enter. Detta tillåter moduler att köras lokalt.

RemoteSigned

 

Skriv följande rad ”Connect-TelldusLive” för att koppla upp mot Telldus Live, du kommer nu att få en inloggningsruta där du anger ditt konto till Telldus Live.

connect-telldus

Om allt går ok så händer det inte något alls nu. Du kommer tillbaka till en tom rad när det är klart.

Nu är det möjligt att starta / stoppa enheter i Telldus live med några få rader:

Genom att skriver Get-TDDevice listas alla dina enheter i Telldus Live. Jag döljer DeviceID och lite annat genom att enbart visa delar av all information som finns. get-tddevice

 

Genom att skriva Get-TDDevice | Set-TDDevice -Action turnOn aktiveras alla mina strömbrytare som Telldus styr. State nedan är nu ”ON” på allt förutom Strips sensorn (som är en dörrsensor).

All-ON

 

Så spara du inloggningen

Varje gång Powershell startar på nytt behöver du ange behörigheterna igen… Lessnade på detta och byggde en extra funktion ”GET-TDCredential” till dom funktioner som Dollarunderscore redan byggt. Detta för spara lösenordet ”säkert” som en Secure string och möjliggöra automatisk inläsning av behörigheter varje gång jag behöver koppla upp mot Telldus Live.

Genom att skriva Get-TDCredential och ange behörigheten till Telldus live så sparas inloggningen lokalt. Detta gör det möjligt att med en mindre modifiering automatiskt ladda in behörigheten och koppla upp script.

SparaBehorigheter

För att kontrollera att behörigheterna sparats kör GET-TDCredentials igen, detta bör returnera ett användarnamn som är din epost samt ”system.Security.SecureString” som lösenord. Dina behörigheter finns sparade lokalt och delvis ”krypterat”.

Sparadeinloggning

 

I uppstarten av ett script räcker det nu med att skriva Connect-TelldusLive -Credential $(Get-TDCredential) för att koppla upp mot Telldus Live med ditt konto automatiskt.

automatiskaBehorigheter

 

Vad kan Telldus Znet Lite göra nu?

Från och med nu är det fantasin som sätter stopp med vad du kan göra med Telldus ZNET Lite!

 

Tänd belysning efter solens nedgång dynamiskt

Med hjälp av lite analysring av kod på en hemsida är det nu möjligt att hämta sol upp/ner. Funktionen Get-MJ-SolUppNer klarar av att lista 290 städer, genom att enbart skriva GET-MJ-SolUppNer listas alla städer. För att välja en stad skriver du Get-MJ-SolUppNer -Stad Sundsvall. Informationen hämtar jag från dinstartsida.se.

$deviceID = 12345 # ID på enheten som ska aktiveras / avaktiveras. 
if ((get-date) -ge (Get-MJ-SolUppNer -Stad sundsvall).solned){Set-TDDevice -DeviceID $DeviceID -Action turnOn} else {Set-TDDevice -DeviceID $deviceID -Action turnOff}

KollaSolUppSolNed

 

Styrning av motorvärmare med temperatur från Vera lite

Exempel på delar av min styrning till motorvärmaren som sitter på en Nexa brytare. Koden hämtar temperaturen ur min Vera Lite och kontrollerar om det är under 5 grader och att klockan är efter 06.00 för att starta.

[decimal]$MinTemperatur = 5.00 # Antal Grader som det ska vara under för att starta.  
[int]$myDeviceID = 123456      # device id inne i Telldus Live
[datetime]$starttid = "06:00"  # ange hur mycket klockan minst måste vara.


if (([decimal](get-MJ-VeraStatus -FindThisDevice 63).CurrentTemperature) -le $MinTemperatur -and (Get-Date) -ge ($starttid))
    {
        "ON"
        Connect-TelldusLive -Credential (Get-TDCredential)
        Set-TDDevice -DeviceID $myDeviceID -Action turnOn
    } 
    else
    {
        "OFF"
        Connect-TelldusLive -Credential (Get-TDCredential)
        Set-TDDevice -DeviceID $myDeviceID -Action turnOff
    }

 

Har du någon idé på vad mer som skulle vara möjligt att styra med hjälp av modulen eller saknar du nått i modulen? hör av dig så kan jag kolla om det är nått jag kan bygga 🙂

 

// Ispep

 

21 reaktioner på ”Telldus – Znet Lite – Scriptning”

  1. Fredrik Wengelin

    TACK för en jättebra förklaring och guide!

    Efter att ha byggt upp ett system runt TellstickNet har jag nu en ZNet Lite och just skaffat 2 Z-Wave.me KFOB2 och vill försöka få dem att styra några scenarios genom att skicka olika scen-val från var och en av de 4 knapparna. Exempel är att aktivera larm-systemet, öppna porten mot gatan, öppna ytterdörren samt tända en del ljus, alla f.n. på det ”gamla” 433 systemet.

    Jag har fått KeyFOB’en att trigga min portöppnare (en Nexa relä-puck), men inte kunnat separera de 4 knapparna och vet inte hur jag kan aktivera ett specifikt event, till skillnad från en enhet.

    Har du några förslag?

    1. Tackar 🙂

      hmmm, om du kollar med ”Get-TDDeviceHistory -DeviceID (id på knappen)” Ser du samma information oavsett vilken av de 4 knapparna du trycker på?
      Har själv inte några sådana enheter knutna till min Znet ännu så jag kan kolla mot mitt system 🙁

      // Ispep

      1. Status är så här:
        Name : KFob1
        DeviceID : 11413
        State : Off
        Statevalue :
        Methods : Unknown
        Type : device
        ClientName : FWTest
        Client : 182071
        Online : True

        men när jag ber om history så får jag State On eller Off, men bara 0 på Statevalue, oavsett vilken knapp jag tryckt.

        F.

        1. Likadant när jag exporterar KeyFobens värden via Remotestick till Tasker, det är bara ”State” som kommmer, dvs. On eller Off.

          Dessutom, när jag försöker att göra ett scenario i Remotestick och triggar på Foben, så krachar appen….Debug loggen visar tyvärr bara exporten av värdena, inget om scen-försöket.

  2. Nej, och Telldus har just konfirmerat att de inte kan ta emot annat än på och av från denna remote, oavsett vilken knapp man trycker på.

    Finns det något sätt att trots allt uppnå detta via direkt kontakt mellan Fobben, Tasker och Remotestick, eller är vi helt beroende på Telldus? I så fall får man kanske fundera på RaZberry…..

    1. Tråkigt att höra. Tyvärr tror jag det är Telldus det hänger på just nu. Sa Telldus om det är nått dom planerar på att införa stöd för framöver?

      Det kanske går att få till som en fristående scene kontroller, men då tappar du nog den funktionen du vill ha 🙁

      // Ispep

      1. Efter att tröskat runt med RaZberry, som väl kan konfigurera de olika ZWave enheterna, men där jag inte lyckats hitta något bra program för att sätta upp scener och för att på ett enkelt sätt styra det hela, inkl. den vitala WAF faktorn…, så har jag till slut fått Telldus Live att korrekt konfigurera min Z-Wave.me KFOB2 med olika aktioner för var och en av de 4 knapparna och kollat mot min Philio PAN06-1B dual switch, men Telldus är fortfarande inte kapabla att ta emot scen kommandon trots att Fob’en kan konfigureras för dessa.

        Är min enda utväg att skrota Telldus och RaZberry och gå Vera-vägen, eller har jag missat något???

        1. Kan bara prata för egen sak: Jag tycker att Veran:n har varit otroligt stabil och mycket enkel att automatisera med. Är väldigt lite som inte har gått att göra med Veran! Och de lilla som inte gått att göra har jag kört Powershell till 😉
          Har försökt tappert att få till nått vettigt med Telldus Znet Lite, men tyvärr faller den lite på dom begränsade api:erna och att 433Mhz endast gäller att ta emot och inte att skicka.

          Som du säger, det viktigaste är att det fungerar och inte är allt för krångligt för alla hemma att hantera. Blir det för komplext eller mycket steg är risken att det helt fallerar.
          Du kommer nog inte att ångra om du byter till en Vera, och orkar du härda ut till ~Q3 kanske Vera Secure även har släppts!

          // Ispep

  3. Härlig läsning..
    Jag är en enkel anv av Telldus Duo och undrar om detta går att använda detta ihop med Vera Plus så Veran kan styra Telldus kommandon? (Orkar inte vänta på Vera Secure om den nu får 433Mhz stödet)

  4. Pingback: Test av Nexa Bridge |

  5. Intressant detta! Försöker lista ut hur jag kan få telldusen att logga en dörrsensor, dvs när den går på och av(sitter på en kattlucka så vill kunna se hur katten går in och ut under dygnet). De har en basic funktion för detta i live, men rätt osmidigt. Vet du nått bra sätt för detta? misstänker att jag lär göra det via script eller http begäran…

    1. Tyvärr verkar det inte som att jag får upp nått vettigt med ”Get-TDDeviceHistory”, vet att han som skrev större delen av den här koden nämnde att det var problem med det tyvärr.

      Frågan om du hinner fånga när katten går ut via nått liknande koden jag gjorde nedan, tror dock inte man får polla telldus live nog ofta utan PRO funktionen.

      $Dorrsensor = ”Strips-Door”
      Connect-TelldusLive -Credential (Get-TDCredential) | Out-Null
      if (((Get-TDDevice | Where-Object {$_.name -eq $Dorrsensor}).state) -eq ”on”)
      {Write-Warning ”katten öppnade”;
      Write-Host ”gör lite jobb här…”
      } else {
      Write-host ”stängd”
      }

      Den lär nog aldrig träffa 100% av gångerna tyvärr.. Eventuellt kanske PRO funktionen i Telldus Live erbjuder någon funktion för detta? har som själv inte testat den så jag vågar inte säga hur det fungerar. Ska kolla om det är möjligt att uppgradera funktionen för att få ut historia om enhetens status i framtiden 🙂

      // Ispep

  6. Pingback: Var med och tävla om en Telldus Znet Lite! |

  7. Tack så mycket! Detta var precis vad jag var ute efter. Nu startar och stängs av mina datorhögtalare när datorn gör det!

    1. Roligt att höra! Var ett tag sedan jag skrev den där modulen nu, kanske är dags att göra en uppdatering med mer roligt 🙂

      // Ispep

  8. Hej,
    Jag har en TellStick ZNet Lite v2 med några temp-/fuktmätare anslutna.
    Jag får inte tag på historiken på Telldus Live och tänkte testa logga själv med detta scriptet, men när jag anslutit i Powershell och försöker hämta information får jag:

    PS C:\WINDOWS\system32> Get-TDDevice
    Cannot convert value ”

    Och sen en massa text. Vad beror detta på?

    Mvh

    1. Hej, nu var det en stund sedan jag testade den här modulen mot telldus tyvärr, måste erkänna att jag inte har koll på om dom uppdaterat sitt api och att modulen behöver uppdateras.

Lämna ett svar till Ispep Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *