Hallo Comunity.
Leider findet man hier im Forum nur sehr wenig Informationen über die Programmierung unter Windows 10.
Meine Aufgabe war es, eine Zustandsänderung meiner Logo auf das Handy zu übertragen.
Meine erste Lösung war, dass ich ein TD- Display virtuell eingebunden habe, und diese mittels WebBrowser vom Hdy aus gesteuert habe.
Im nächsten Schritt wollte ich über ungültige Statusänderungen per SMS Warnung informiert werden.
Dazu wählte ich das Programm Pushbullet.
Damit Pushbullet läuft, musste ich noch das Programm <Curl> nachinstallieren.
Nach vielen Versuchen habe ich mein Projekt doch noch fertigstellen können.
Hier eine kurze Anleitung:
* Aufruf in LogoControl:
<device id="7" name="Statusbericht senden" type="light">
<attribute id="1" name="Status" plc="myLogo" address="1105.5" datatype="bit" /> <!--Merker 14 Gibt um 20:00 einen Statusbericht -->
<method id="1" name="ShellScripts" script="stoerung.bat 2" />
<trigger plc="myLogo" address="1105.5" datatype="bit">
<onValue value="1" method="1" />
</trigger>
</device>
Ich aktiviere das Script stoerung.bat und übergebe den Fehlercode 2 mit.
* Script File stoerung.bat
@echo on
rem Felertyp auslesen
set Fehlertyp=%1
if "%Fehlertyp%" EQU "1" ( set header=------_Stoerung_------)
if "%Fehlertyp%" EQU "2" ( set header=---_Statusbericht_----)
rem Fehlerspeicher auslesen , in Datei schreiben und als String abspeichern
curl localhost:8082/rest/devices/5/attributes/1/value > val.txt
set /p wert=<val.txt
set errorcount=Fehleranzahl:%wert%
rem Status der Klappe auslesen , in Datei schreiben und als String abspeichern
curl localhost:8082/rest/devices/1/attributes/1/value > val.txt
set /p wert1=<val.txt
curl localhost:8082/rest/devices/2/attributes/1/value > val.txt
set /p wert2=<val.txt
if "%wert1%" EQU "1" if "%wert2%" EQU "1" ( set status=Klappe_ist_in_der_Mitte)
if "%wert1%" EQU "0" if "%wert2%" EQU "1" ( set status=Klappe_ist_geoeffnet.__)
if "%wert1%" EQU "1" if "%wert2%" EQU "0" ( set status=Klappe_ist_geschlossen.)
curl --header Access-Token:o.xxxxxxxxxxxxxx https://api.pushbullet.com/v2/pushes -d type=note -d title=%header%_%status%______%errorcount% -X POST
Es ist mir nicht gelungen, die Variable aus LogoControl auszulesen und direkt im Batch File zu verarbeiten.
Aus diesem Grund speichere ich den Wert in einem Textfile zwischen und lese diesen wieder aus.
Umständlich aber es funktioniert. Vielleich gibt es eine Verbesserungsmöglichkeit.
Liebe Grüße
Markus
-
Dieses Thema wurde vor vor 5 Jahren, 10 Monaten von Markus.markus bearbeitet.