Ankündigung

Einklappen

PLUGINS

Bitte im Titel immer zuerst den Namen des Plugin hinschreiben
Mehr anzeigen
Weniger anzeigen

Miele-MQTT => Loxberry MQTT

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • AlexAn
    kommentierte 's Antwort
    Na das war ja einfach👌

  • Tico
    kommentierte 's Antwort
    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.

  • Tico
    antwortet
    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...

    Einen Kommentar schreiben:


  • AlexAn
    kommentierte 's Antwort
    Miele hat die API umgestellt!

  • Tico
    antwortet
    I have a question on the Node-Red version of Miele-MQTT. I am seeing an error occur in the Node-Red debug panel -

    "TypeError: Cannot read property 'hasOwnProperty' of undefined"

    I have tried a fresh copy of the JSON install from here -

    https://flows.nodered.org/flow/32ab5...86fd40bfa0835a

    It is possibly a problem of my local instance of Node-Red/Miele, or Miele has changed the API again. Curious to know if anyone is having similar issues?

    Einen Kommentar schreiben:


  • pedror
    kommentierte 's Antwort
    da hast du natürlich recht...

    Ist ersetzt

  • Christian Fenzl
    kommentierte 's Antwort
    Das sieht aber nach einem $ aus, nicht nach einem &

  • pedror
    antwortet
    Hallo Christian,

    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 pedror; 15.Apr.2020, 11:55. Grund: $ durch & ersetzt

    Einen Kommentar schreiben:


  • Christian Fenzl
    antwortet
    Das neue Miele-MQTT (https://github.com/oklona/Miele-MQTT) läuft jetzt als Daemon, dh es muss nur einmal gestartet werden und läuft weiter.

    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).

    Für Cronjobs am LB haben wir auch einen Artikel: https://www.loxwiki.eu/plugins/servl.../view/48137110

    lg, Christian

    Einen Kommentar schreiben:


  • svethi
    antwortet
    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.

    Einen Kommentar schreiben:


  • pedror
    antwortet
    sooo,

    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?

    Einen Kommentar schreiben:


  • svethi
    antwortet
    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>

    Einen Kommentar schreiben:


  • pedror
    antwortet
    ich steh grad auf dem schlauch...

    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)

    Einen Kommentar schreiben:


  • svethi
    kommentierte 's Antwort
    Stimmt, das ist außerdem falsch.

  • Christian Fenzl
    kommentierte 's Antwort
    Du machst einen Bash-Call, hast aber einen PHP-Shebang.
Lädt...
X