Willkommen im Loxone Community Forum. Um alle Funktionen nutzen und sehen zu können, registriere dich bitte zuerst. Dies gilt auch für das herunterladen von Dateien.
Bitte im Titel immer zuerst den Namen des Plugins hinschreiben
Wie von dir vermutet, handelt es sich um einen Fehler im Script. Issue wurde bereits umgesetzt und eine neue Version ist verfügbar, die den Fehler nicht mehr aufzeigt. Thx für den Tipp, auf den ich ja auch selber hätte kommen können...
so, der Entwickler hat auch gleich den anderen Fehler gefixt mit dem Aufruf der Bluerhinos Library...
Und jetzt noch was...
Ich habe versucht, einen Cronjob zu erstellen, aber ich scheitere wohl daran, dass ich nicht ganz verstehe, warum es nicht geht...
Code:
#!/bin/php
# This is a sample cron file. According to it's name it will go to
# ~/system/cron/cron.hourly. You may also let your Pluginscript create a
# symbolic link dynamically in ~/system/cron/cron.10min which links to your
# cron-script instead (which is prefered). Use NAME from
# /data/system/plugindatabase.dat in that case as scriptname! Otherwise the
# cron script will not be uninstalled cleanly.
# Will be executed as user "loxberry".
/opt/loxberry/webfrontend/legacy/miele/miele-MQTT.php
Ich möchte, dass ein Cronjob bei jedem Restart des Loxberries (oder halt jede Stunde) die PHP-Seite startet, damit die Abruffunktion sauber im Miniserver angezeigt wird.
Also dachte ich, schau dir die anderen Cronjobs an, und les dich ein wenig ein... und dann habe ich damit einen neuen Cronjob im "Restart" hinterlegt, mit dem obenstehenden Inhalt.
Führe ich die php via Putty aus läuft das script so lange, bis ich Putty beende (aber das script soll ja immer laufen)
Wo hast Du was eingetragen und das Script darf natürlich nicht immer laufen. Das darf nur kurz laufen. Warum es so lange läuft liegt wohl eher daran, dass das Script falsch ist. Wie Christian schon sagte, ist Shebang falsch. Du hast im Script einen Bash Aufruf und sagst aber dass das mit PHP aufgerufen werden soll. Die Shebang müsste allein schon mal #!/bin/bash lauten. Und dann kommt es darauf an, was Du in der PHP Datei stehen hast. Wenn da die PHP-Shebang drin steht, dann kannst Du das so lassen, wenn aber nicht, dass muss der Aufruf php -f <und dann dein Pfad zur Datei>
Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)
Mit deiner Hilfe hab ich das Plugin jetzt mal in den Cronjob hinzugenommen...
Code:
#!/bin/bash
# This is a sample cron file. According to it's name it will go to
# ~/system/cron/cron.hourly. You may also let your Pluginscript create a
# symbolic link dynamically in ~/system/cron/cron.10min which links to your
# cron-script instead (which is prefered). Use NAME from
# /data/system/plugindatabase.dat in that case as scriptname! Otherwise the
# cron script will not be uninstalled cleanly.
# Will be executed as user "loxberry".
php -f /opt/loxberry/webfrontend/legacy/miele/miele-MQTT.php
Das läuft jetzt schön, wie es soll.
Wenn ich jedoch deine Antwort richtig verstanden habe, sollte ich schauen, dass ich das Script halt manuell beende und danach wieder aufrufe?
Das Script wird doch von Cron ständig wieder gestartet, deshalb nutzt man ja cron. Dein Script sollte seine Arbeit tun und dann fertig sein und beenden. Cron startet dass dann im entsprechenden Turnus neu. Wenn Dein Script nicht beendet, dann wird zu jedem Turnus ein neuer Prozess gestartet. Das bedeutet, dass es immer mehr werden und Dein System irgendwann zum Erliegen kommt. Des Weiteren wird es zu einem Durcheinander kommen, wenn mehrere das Gleiche tun wollen.
Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)
Ab LB2.0.1 haben wir in cron einen reboot-Ordner, der einmalig beim Boot ausgeführt wird.
Hänge beim Start-Aufruf hinten ein & an (Leerzeichen &), damit das Script im Hintergrund weiterläuft. (Näheres, wenn du „run Script as daemon“ googelst).
danke. Ich habe mir nun das Script in den croon.reboot Ordner verschoben
Damit das Teil auch sauber anläuft, habe ich noch einen Sleep 600 mit rein gemacht. Ansonsten startet das natürlich zu früh und es funktioniert dann nicht.
Code:
#!/bin/bash
# This is a sample cron file. According to it's name it will go to
# ~/system/cron/cron.hourly. You may also let your Pluginscript create a
# symbolic link dynamically in ~/system/cron/cron.10min which links to your
# cron-script instead (which is prefered). Use NAME from
# /data/system/plugindatabase.dat in that case as scriptname! Otherwise the
# cron script will not be uninstalled cleanly.
# Will be executed as user "loxberry".
sleep 600
php -f /opt/loxberry/webfrontend/legacy/miele/miele-MQTT.php &
Zuletzt geändert von Gast; 15.04.2020, 11:55.
Grund: $ durch & ersetzt
Ahh...again. I had a look at the sub-flow but it doesn't make much sense to me. The are two formula blocks in the sub-flows that reference 'hasOwnProperty'.
Code:
let bearer = env.get("bearer");
if (bearer === "" && msg.bearer ==="") node.send({payload:"bearer missing"});
if(msg.hasOwnProperty('bearer')) bearer=msg.bearer;
let lang = env.get("lang");
if (lang === "" && msg.lang ==="") node.send({payload:"language missing"});
if(msg.hasOwnProperty('lang')) lang=msg.lang;
let device = env.get("device");
if (device === "" && msg.device ==="") node.send({payload:"device missing"});
if(msg.hasOwnProperty('device')) device=msg.device;
var msg2;
msg2={payload: "curl -X GET \"https://api.mcs3.miele.com/v1/devices/"+device+"?language=" + lang +"\" -H \"accept: application/json; charset=utf-8\" -H \"Authorization: Bearer " + bearer + "\""};
msg1=null;
return [[msg1],[msg2]];
and
Code:
var msg1={topic:msg.topic, payload: msg.payload};
var msg2;
if(msg.payload.status.hasOwnProperty("value_raw")) msg2={payload:{fill:"green",shape:"dot",text:"OK"} };
return [[msg1],[msg2]];
I should have studied coding in high school...
Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.
Repariert! Ich habe die Miele-App auf meinem iOS-Gerät aktualisiert und dann meinen Geschirrspüler wieder zum Miele-Konto hinzugefügt. Jetzt funktioniert er einwandfrei.
Welches passwort und login muss ich bei mosquitto_xxx eingeben? den Konsolen-login oder den standard Login für den loxberry?
Das passwort stimmt 100%ig. wenn ich noch den Port anfüge (wie früher angemerkt) kommt eine andere fehlermeldung und er hängt den Port zweimal an. daran sollts also nicht liegen
Danach wird zwar nicht mehr (wie im Loxwiki erwähnt) gefragt, aber ich find das file: mosquitto_pub nirgends auf meinem Loxberry?
Zuletzt geändert von Homer_smart; 02.07.2020, 07:19.
Wir verarbeiten personenbezogene Daten über Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen, Werbung zu personalisieren und Websiteaktivitäten zu analysieren. Wir können bestimmte Informationen über unsere Nutzer mit unseren Werbe- und Analysepartnern teilen. Weitere Einzelheiten finden Sie in unserer Datenschutzrichtlinie.
Wenn Sie unten auf "Einverstanden" klicken, stimmen Sie unserer Datenschutzrichtlinie und unseren Datenverarbeitungs- und Cookie-Praktiken wie dort beschrieben zu. Sie erkennen außerdem an, dass dieses Forum möglicherweise außerhalb Ihres Landes gehostet wird und Sie der Erhebung, Speicherung und Verarbeitung Ihrer Daten in dem Land, in dem dieses Forum gehostet wird, zustimmen.
Kommentar