Din varukorg är för närvarande tom!
Powershell Webbserver med SMS funktion
Powershell webbserver för att skicka sms och logga data.
Jag har nu färdigställt V1.0 av scriptet jag själv kör för loggning och utskick av SMS. Det scriptet gör är att skapa en webbserver som tar emot och behandlar http kommandon. Detta gör att allt som kan surfa kan skicka information till webbservern.
Vi har även skrivit en större modul för att kunna scripta direkt mot Vera och Telldus Znet Lite
Bland annat har jag kompletterat min Vera Lite att skicka sms och logga information via den här webbservern. Jag har konfigurerat några av mina ESP8266 och Arduinos att skicka SMS via scriptet med.
Fördelen med detta är att jag nu har 100% kontroll och bestämmer precis vad som ska hända och när det ska hända.
Vad behöver man göra för att de ska fungera??? Starta ”PowerShell_ISE.exe” öppna scriptet och tryck på ”F5”
Nuvarande version 1.0 släpptes 2016-04-06
- Servern klarar att skicka sms med hjälp av 3g modem (Guide på modem konfiguration)
- Loggning sker till en central fil samt separata filer
- Uppläsning av loggfiler från hårddisken till klienter i tabellform.
Det går att ladda ner scriptet via våran GITHUB
Konfiguration
Börja med att ladda hem scriptet från våran GITHUB
skapa en mapp på lämpligt ställe och spara scriptet där. Skapa sedan en undermapp dit du vill att loggarna ska sparas.
Om det ännu inte kört några PowerShell script på datorn kan det behöva göras några ändringar för att tillåta detta.
Allt som behövs för att detta ska fungera är att skriva:
Set-ExecutionPolicy RemoteSigned
Raden ovan tillåter Powershell att köra script lokalt på klienten.
- $port=54320 – Ange port du vill att din klient ska lyssna på.
- $serverIP=”127.0.0.1” – Ange IP-adress du vill att klienten ska lyssna på.
- $COMPort=”COM3” – Ange vilken port du har SMS modemet på
- $loggpath = ”C:\temp\Loggar” – Ange vart du vill att alla loggar ska sparas.
Genom att ändra $verbosePreference till ”Continue” istället för ”SilentlyContinue” går det att få mer information.
# Parametrar param ($port=54320,$serverIP="127.0.0.1",$ComPort="COM3",[int]$ModemSpeed=9600,$loggpath = "C:\Temp\Loggar") $VerbosePreference = "silentlyContinue"
Brandväggsregler
Tänk på att servern där scriptet körs måste få ett undantag skapa i brandväggen.
# Genom att köra följande rad i Powershell V5.0 eller nyare lägger du till ett undantag för porten du vill ha din server på. Tänk på att köra powershell.exe som administratör! [int]$DinPort = 54320 [string]$RegelNamn = "Automatiserar-Webbserver" New-NetFirewallRule -DisplayName $RegelNamn -Direction Inbound -LocalPort $DinPort -Protocol TCP -Action Allow
Logga data
För att logga data till webbservern behöver klienten skicka följande rad: ”http://DittIP:54320/?LOGGA/ValfriText/MinSensorNR4/27,5”
- MinSensorNR4 : Detta är namnet på filen som kommer att skapas i loggmappen. Samt namnet på sensorn i loggfilen.
- 27,5 : Följande värde är bra ett exempel på vad som kan skickas in som värde.
För att läsa informationen via http
Alla kommandon som skickas in till webbservern sparas i en filstruktur.
- Data.log – Innehåller informationen om alla ”sensorer” som sparats.
- Scriptinfo.log – Innehåller all information om klienter som skickat kommandon.
- Sensor1.log – Loggad information om en sensor kallad ”Sensor1”
- Sensor2.log – Loggad information om en sensor kallad ”Sensor2”
- AnnanSensor3.log – Loggad information om en sensor kallad ”AnnanSensor3”
Kommandon som stöds som sista del i http kommandot:
- Tabel
- ALL
- Last
Genom att skriva ”http://DittIP:54320/?readlog/Demo/DATA/tabel” laddas data in från filen ”Data.log”
För att enbart ladda information om Sensor2 skriver jag följande:
http://DittIP:54320/?readlog/Demo/Sensor2/tabel
För att läsa sista raden i en fil, exempelvis Data.log. skriver du följande rad:
- http://DittIP:54320/?readlog/Demo/data/last
Skicka SMS
För att skicka SMS med scriptet behöver du ett modem som klarar att skicka SMS. Jag använder ett Huawei E220 HSDPA modem. Välj motsvarande COM port som visas där i scriptets variabel
- V1.0 – har problem att skicka ÖÄÅ i SMS, någon som har en bra idé på vad som kan tänkas lösa detta?
Scene i Vera som skicka SMS vid Larm
För att skicka sms med en scene i vera behöver du bara köra följande rad:
luup.inet.wget("http://DittIP:54320/?SMS/0701234567/Larmet har triggat!")
Genom att skapa en scene i Vera som aktiveras när en dörr öppnas och systemet är Away eller Vacation skickas ett sms med Veras egna tjänst. Utöver det har jag även skapat lite LUUP kod som anropar Powershell webbservern.
Följande kod finns under ”Also, execute the following Luup code:”
Om du väljer att spinna vidare på scriptet och dela det vidare, ge då cred till oss på www.automatiserar.se och länka till bloggen 🙂
[poll id=”17″]
Upptäcker du nått som inte fungerar eller har en bra idé på mer som scriptet borde klara skriv det i så fall!
// Ispep