Willkommen › Foren › LogoControl › Trigger Fuktion in LogoControl funtioniert nicht
- Dieses Thema hat 7 Antworten sowie 3 Stimmen und wurde zuletzt vor vor 5 Jahren, 6 Monaten von ScamZ aktualisiert.
-
AutorBeiträge
-
14. Januar 2019 um 17:57 #3840User_CHTeilnehmer
Ich habe LogoControl auf einer RaspberryPi v3 installiert und es funktioniert.
Nun wollte ich die Triggerfunktion nutzen:
Der Ausgang Q1 gibt in regelmässigen Abständen ein 1-Signal. dies soll ein Script triggern, das einen Log-Eintrag in eine Datei macht.
der Ausgang Q1 wechselt alle 10s in den Zustand 1 (für 1s).
Das Script „log.sh“ liegt im Verzeichnis /home/pi/LogoControl/Scripts und funktioniert, wenn über command-line gestartet.
Die Rechte für das Script wurden angepasst mit chmod +x log.sh.Trotzdem triggert der Trigger das Script nicht.
Ich versteh nicht wieso.<device id=“4″ name=“Shell Scripts“>
<method id=“1″ name=“Log Level“ script=“log.sh“ />
<trigger plc=“myLogo“ address=“Q1″>
<onValue value=“1″ method=“1″ />
</trigger>
<attribute id=“1″ name=“Impulse“ plc=“myLogo“ address=“Q1″ datatype=“bit“ />
</device>Hat jemand eine Idee?
14. Januar 2019 um 21:17 #3841SoulLeZzTeilnehmerHi, 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
14. Januar 2019 um 21:19 #3842SoulLeZzTeilnehmerHi,
hab noch was vergessen abzuändern: beim Trigger musst du natürlich deine plc eintragen!17. Januar 2019 um 17:51 #3845User_CHTeilnehmerHi,
ich habe Deinen Code übernommen, meine plc eingefügt, die Adresse auf einen Merker gesetzt (100.0), welchen ich an der Logo definiert habe.
Auch habe ich den folgenden Code unter demselben device mitlaufen lassen (wie schon initial):
<attribute id=“1″ name=“Impulse“ plc=“myLogo“ address=“100.0″ datatype=“bit“ />
um zu sehen ob die Adresse 100.0 auch wirklich das Signal wechselt.In der Tat, das Signal wechselt, das Script wird jedoch nicht ausgeführt.
17. Januar 2019 um 18:32 #3846SoulLeZzTeilnehmerHi,
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 Pi17. Januar 2019 um 19:34 #3847User_CHTeilnehmerHab das Problem gefunden:
Das Log-file war unter dem root-User. Ich habe das Verzeichnis (/home/pi/LogoControl/Logs) gelöscht und als pi-User nochmals gebildet. Dann habe ich das log-Script nur mit bash log.sh (NICHT sudo bash log.sh) ausgeführt.
Nun klappt es.
Vielen Dank für die Unterstützung.22. April 2019 um 20:53 #3868ScamZTeilnehmerEs scheint als hätte ich das selbe Problem..
Ich habe mein shell Script in /home/pi/LogoControl/Scripts gespeichert.
dann sudo chmod +x NAME eingegeben und wenn ich es mit sudo bash NAME ausführe funktioniert es (Wake on Lan meines TVs)
gebe ich nun allerdings sh NAME ein, kommt die Fehlermeldung, dass ich es als root ausführen muss.Vermutlich führt LogoControl das Script nicht als root aus, weshalb der TV nicht geweckt wird…
weiß jemand wie ich das ändern kann?
die datei wurde zwar nicht als root user erstellt, muss aber dennoch als einer ausgeführt werden..
Grüße!24. April 2019 um 16:54 #3870ScamZTeilnehmerIch wusste nicht, dass man sudo auch im Script benutzen kann..
habs jetzt selbst hinbekommen indem ich das sudo vor etherwake geschrieben habe…
Hier das Wake on Lan Script aus einem Ubuntuforum:#!/bin/sh
# Ein Script zum aufwecken meines LGs
# Name: wakeme# MAC-Adresse meines TVs
mac=“78:5D:H8:5F:77:01″echo „Rechner wird aufgeweckt. Bitte warten“.
sudo etherwake $mac# Hier wird mit einem Workaround eine Wartezeit eingebaut
sleep 25# Hier wird der Rechner angepingt, um zu schauen, ob er auch hochgefahren wurde
ping 192.168.178.28 -c 2 > /dev/null# Hier wird ueberprueft, ob der Vorgang erfolgreich war
if [ $? -eq 0 ]
then
echo „Rechner wurde erfolgreich hochgefahren.“
exit 0
fiecho „Der Rechner konnte nicht hochgefahren werden. Fehler.“
exit 1 -
AutorBeiträge
- Du musst angemeldet sein, um zu diesem Thema eine Antwort verfassen zu können.