Erstellte Forenantworten
-
AutorBeiträge
-
SoulLeZzTeilnehmer
Also ich finde, es ist „straight forward“.
Wenn du die Homebridge dann am laufen hast, kannst du das Plugin https://github.com/rudders/homebridge-http nutzen.
Wenn du ein besseres Plugin findest, lass es mich wissen 😉SoulLeZzTeilnehmerHallo,
ich nutze die Apple Homekit App als alternative. Dazu habe ich Homebridge auf meinem Pi installiert.
Bei Fragen stehe ich gerne zur Verfügung.SoulLeZzTeilnehmerHi,
führe das Script mal manuell aus:
Mit SSH auf den Raspberry einloggen und dann mitcd /home/pi/LogoControl/Scripts/
zu dem Script navigieren.
Mitbash script.sh
das Script ausführen.
Damit kann man schonmal überprüfen, ob es an LogoControl liegt oder nicht.
Wenn das Script trotzdem nicht ausgeführt wird, einfach mal diese Anleitung durchlesen: Script ausführen auf einem Raspberry PiSoulLeZzTeilnehmerHi,
hab noch was vergessen abzuändern: beim Trigger musst du natürlich deine plc eintragen!SoulLeZzTeilnehmerHi, versuchs mal hiermit:
<device id="4" name="Shell Scripts"> <method id="1" name="Telegram" script="log.sh 'Test' " /> <trigger plc="Obergeschoss" address="160.2"> <onValue value="1" method="1" /> </trigger> </device>
Wie ich sehe hast du bei dem Trigger „Q1″ als Adresse. Du musst in deinem Logoprogramm einen Netzwerkausgang hinzufügen und diesem eine Adresse zuweisen. Bei mir ist’s in diesem Fall adress=“160.2“
Gruß
SoulLeZz
SoulLeZzTeilnehmerHi,
das habe ich noch nicht ausprobiert. Aber schau mal hier: Analoge Ausgänge
Ich würde aber das mal Ausprobieren:
#!/bin/bash TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXX CHAT_ID=XXXXXXXXX URL="https://api.telegram.org/bot$TOKEN/sendMessage" timestamp=$(date "+%H:%M:%S") result=$(wget -qO- localhost:8088/rest/devices/1/attributes/1/value) MESSAGE="$timestamp: $1 $result" curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE"
In Logocontrol:
<device id="1" name="ShellScripts"> <method id="1" name="Logeintrag Helligkeit" script="script_analog.sh" /> <trigger plc="myLogo" address="234" datatype="uword"> <onValue value="" method="1" /> </trigger> </device>
SoulLeZzTeilnehmerHi,
anbei eine Beispielconfig:
<?xml version="1.0" encoding="utf-8"?> <configuration> <settings> <plc id="myLogo" type="Logo8" ip="0.0.0.0" /> <httpWebservice port="8088" /> <httpsWebservice port="8080" username="" passwordHash="" hashSalt="" /><!-- generate your SHA1 password hash here: http://www.sha1generator.de --> <valueTextConverter> <!-- Verschiedene Konverter zur Überführung von Value (ganzzahliger Rohwert aus der Logo) in ValueText (Anzeigewert für den Benutzer) --> <textMapping id="an_aus"> <!-- Text-Mapping für aus (0) und an (1) --> <valueText value="0" text="aus" /> <valueText value="1" text="an" /> </textMapping> <textMapping id="rollo"> <!-- Text-Mapping für Rolläden --> <valueText value="0" text="geschlossen" /> <valueText value="1" text="mittel" /> <valueText value="2" text="offen" /> </textMapping> <textMapping id="auf_zu"> <!-- Text-Mapping für Tür-/Fensterkontakte --> <valueText value="0" text="zu" /> <valueText value="1" text="auf" /> </textMapping> <calculation id="minsec"> <!-- Analogwert zu/von Zeitwert (Bsp: 4873 zu 81:13) --> <valueToText calculation="{Floor([value]/60)}:{if([value]%60>9,'','0')}{[value]%60}" /> <textToValue valueParseRegex="(\d+):(\d+)" calculation="{[value1]*60+[value2]}" /> </calculation> <calculation id="time"> <!-- Analogwert zu/von Uhrzeit (4873 zu 13:09) --> <valueToText calculation="{Floor(LogoDec2Hex([value])/100)}:{if(LogoDec2Hex([value])%100>9,'','0')}{LogoDec2Hex([value])%100}" /> <textToValue valueParseRegex="(\d+):(\d+)" calculation="{LogoHex2Dec([value1]*100+[value2])}" /> </calculation> </valueTextConverter> </settings> <infrastructure> <group name="Dachgeschoss"> <group name="Zentral"> <device id="1" name="Wartung"> <attribute id="1" name="Status" plc="myLogo" address="160.2" datatype="bit" valueTextConverter="an_aus" /> <!-- Statusabfrage des Ausgangs. Die Adresse muss vorher im Programm festgelegt werden. (Netzwerkausgang) --> <method id="1" name="Impuls Ein/Aus" plc="myLogo" address="150.3" /> <!-- Schalten des Ausgangs mit einem Netzwerkeingangs, ebenfalls im Programm festgelegt --> <method id="2" name="Telegram" script="script.sh 'Wartung eingeschaltet' " /> <!-- Methode 2! Ausführen des Scripts, wenn Wartung eingeschaltet --> <method id="3" name="Telegram" script="script.sh 'Wartung ausgeschaltet' " /> <!-- Methode 3! Ausführen des Scripts, wenn Wartung eingeschaltet --> <trigger plc="myLogo" address="160.2"> <!-- Statusabfrage des Ausgangs --> <onValue value="1" method="2" /> <!-- Wenn Ausgangswert auf 1, dann führe Methode 2 aus --> <onValue value="0" method="3" /> <!-- Wenn Ausgangswert auf 0, dann führe Methode 3 aus --> </trigger> </device> </group> </group> </infrastructure> </configuration>
SoulLeZzTeilnehmerHi,
hast du in deinem Logoprogramm einen Netzwerkausgang hinzugefügt?
Wenn ja, vergib diesem Netzwerkausgang eine Adresse.Hast du schon eine Config?
Dann schick mir die mal hier reinSonst sag mir mal genauer, wo du nicht weiterkommst.
Mit freundlichen Grüßen
SoulLeZz
SoulLeZzTeilnehmerWo ist dein mein Beitrag hin?!
Ich versuchs nochmal 😉Hi,
zunächst lädst du dir Telegram auf dein Handy und erstellst einen Bot.
Eine Anleitung findest du unter Telegram Bot erstellen.Wenn du ihn eingerichtet hast fügst in das Script dein Token und deine Chat ID ein.
#!/bin/bash TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXX CHAT_ID=XXXXXXXXX URL="https://api.telegram.org/bot$TOKEN/sendMessage" timestamp=$(date "+%H:%M:%S") MESSAGE="$timestamp: $1" curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE"
Das Script speicherst du auf deinem Pi unter /home/pi/LogoControl/Scripts mit dem Namen script.sh
Um das Script ausführbar zu machen hilft dir dieser Link Script ausführen auf einem Raspberry PiZum Testen kannst du das Script ausführen:
Zunächst navigierst du in den Ordner, wo das Script liegt „cd /home/pi/LogoControl/Scripts“ und führst es mit „bash script.sh“ aus.Wenn alles geklappt hat müsstest du jetzt in deinem Telegrambot eine Nachricht bekommen haben.
Nun zu Logocontrol:
Hier ein Beispiel von mir:<device id="503" name="Wartung"> <attribute id="1" name="Status" plc="Obergeschoss" address="160.2" datatype="bit" valueTextConverter="an_aus" /> <method id="1" name="Impuls Ein/Aus" plc="Obergeschoss" address="150.3" /> <method id="2" name="Telegram" script="script.sh 'Wartung eingeschaltet' " /> <method id="3" name="Telegram" script="script.sh 'Wartung ausgeschaltet' " /> <trigger plc="Obergeschoss" address="160.2"> <onValue value="1" method="2" /> <onValue value="0" method="3" /> </trigger> </device>
Da auf dieser Seite ausführlich erklärt wird wie das alles Funktioniert, gehe ich deshalb nicht genauer darauf ein.
Die Anleitung findest du unter: Logocontrol/Für Fortgeschrittene/Shell Scripte ausführenMit freundlichen Grüßen
SoulLeZz
SoulLeZzTeilnehmerHallo,
soweit mir bekannt ist, funktioniert das mit Whatsapp nicht.
Ich nutze als Alternative Telegram.
Wenn Interesse besteht, kann ich dir das Script zukommen lassen.Mit freundlichen Grüßen
SoulLeZz
SoulLeZzTeilnehmerHallo,
kontrolliere doch bitte mal deinen Hostnamen:
sudo raspi-config
Network Options –> Hostname : Darin muss dann logocontrol stehen.
Anschließend den Raspberry neustarten. Dann müsste http://logocontrol:8088 erreichbar sein.Es scheint so, als hättest du einen Fehler in deiner Config. Kannst du den Fehler hier rein schreiben?
!/bin/sh # ACCESS_TOKEN="Hier der Code von Pushbullet rein" timestamp=$(date "+%H:%M:%S") title="$1" body="$2\n($timestamp)" curl --header "Authorization: Bearer $ACCESS_TOKEN" -X POST https://api.pushbullet.com/v2/pushes --header 'Content-Type: application/json' --data-binary '{"type": "note", "title": "'"$title"'", "body": "'"$body"'"}'
Anschließend in der Logocontrol Config folgendes einfügen:
<device id="1" name="ShellScripts"> <method id="1" name="Pushbullet Hauttür geöffnet" script="pushbullet.sh 'Haustür' 'wurde geöffnet'" /> <trigger plc="myLogo" address="100.0" datatype="bit"> <onValue value="1" method="1" /> </trigger> </device>
Wichtig: Das Script muss pushbullet.sh heißen
Das Script wird ausgeführt, wenn die Adresse 100.0 = 1 ist.- Diese Antwort wurde vor vor 6 Jahren, 3 Monaten von SoulLeZz bearbeitet.
SoulLeZzTeilnehmerHallo Jens,
ja, das ist ohne weiteres möglich
SoulLeZzTeilnehmerHallo,
gibt es eine Möglichkeit, den Status des Sonoff-Basics auszulesen?
Ich kann leider keine URL in attribute einfügen.Vielen Dank!
SoulLeZzTeilnehmerHallo,
ist es mittlerweile möglich die Einschaltverzögerung bzw. die Impulsdauer als Min:Sec anzeigen zu lassen? Wenn ja, wie?
SoulLeZzTeilnehmer -
AutorBeiträge