Posts by bricewullis

    Hallo,

    ich möchte die Backupdateien in einem Verzeichnis zählen und bei einer bestimmten Anzahl eine Aktion auslösen. Aber ich scheitere schon bei der Auswertung der Dateianzahl.

    Ich habe nur mal zum Test ein kleines Script, aber es gibt einen Fehler in der Zeile von "if"

    #!/bin/sh
    dateianzahl= ls /backup/*.backup | wc -l
    max=5
    if [ $dateianzahl -gt $max ]
    then
    echo $dateianzahl
    else
    echo  "nicht mehr als 5"
    fi

    Vielleicht kann mit jemand helfen. Danke

    Das gleiche Problem hatte ich auch mal. Während eines Backups mit dd hängt sich der Raspi auf und ist nicht mehr erreichbar. Bei mir hat es am WLAN gelegen. Seit ihn mit einem LAN-Kabel verbunden habe ist alles gut. Manchmal ist es auch im WLAN durchgelaufen. Aber nur sporadisch. Es scheint so, als ob die kleinste Unterbrechung im Wlan reicht um diesen Fehler auszulösen. Vielleicht hilft es ja.

    Der Aufruf von

    ergibt:

    Code
    Tasmota ist {"POWER":"OFF"}
    tasmotatest.sh: 5: [{"POWER":"OFF"}: not found
    tasmotatest.sh: 9: [{"POWER":"OFF"}: not found

    Die Variable stimmt also, aber mit der Auswertung hapert es .

    Ah stimmt, da war ja was.

    Code
    status=$(curl -s http://192.168.8.64/cm?cmnd=power | jq ".Power")
    echo "Tasmota ist ${status}"

    :thumbup:Also die Variable wird jetzt eingelesen (z.B. {"POWER":"ON"}). Die Pipe und das jq danach muß ich aber weg lassen, sonst steht immer "null" in der Variablen.

    Code
    pi@raspi:~ $ status=$(curl -s http://192.168.8.64/cm?cmnd=power )
    pi@raspi:~ $ echo $status
    {"POWER":"ON"}
    pi@raspi:~ $

    Jetzt brauche ich nur noch die Auswertung.

    Code
     if [[ "$status" -eq "{"POWER":"ON"}" ]]

    funktioniert z.B. nicht. Auch nicht in der bash.

    Hallo,

    Bash
    status = $( curl http://192.168.8.64/cm?cmnd=power | jq '.Power')
    echo "Tosmata ist ${status}"

    Müsste schon reichen?


    Grüße
    Dennis

    Leider nicht. Ergebnis:

    Code
     % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100    15    0    15    0     0    157      0 --:--:-- --:--:-- --:--:--   159
    tasmotatest.sh: 12: status: not found
    Tosmata ist

    Hallo,

    ich möchte den Schaltzustand einer Tasmota-Steckdose abfragen. Dazu nutze ich den (funktionierenden) Befehl: curl http://192.168.x.x/cm?cmnd=Power. Da Ergebnis ist entweder {"POWER":"OFF"} oder {"POWER":"OFF"}

    Leider funktioniert meine Testscript nicht so wie ich es will.

    Bash
    #!/bin/sh
    status=curl http://192.168.8.64/cm?cmnd=Power
    if  [ "$status" -eq "{"POWER":"ON"}" ]
    then
    echo "Tasmota eingeschaltet"
    fi
    if  [ "$status" -eq "{"POWER":"OFF"}" ]
    then
    echo "Tasmota ausgeschaltet"
    fi 

    Vielleicht kann ja jemand helfen.

    Danke

    Hallo, ich hatte das gleiche Problem. Es lag an der selbst erzeugten conf-Datei. Das hat geholfen. Ich habe noch eine Frage: wo kommt eigentlich die conf-Datei genau hin?

    einmal liest man nach "/etc/lirc/lircd.conf.d/", dann wieder nach "/etc/lirc/". Ich habe jetzt so lange rumprobiert, und überall eine Kopie davon. Und ist eigentlich der Dateiname egal bis auf die Endung (.conf)? Wenn man mehrere conf-Dateien hat, kann man auch eine jeweils aktuelle auswählen? Ich weiß, Fragen über Fragen aber vielleicht kann ja trotzdem jemand etwas Licht in den Dschungel bringen.

    Danke

    Hallo, danke erst mal. Jetzt habe ich gedacht , die php-Lösung wäre das einfachste, aber ich bekomme nur einen Synthax-Fehler.

    Wenn ich versuche folgendes aufzurufen:

    curl -s '-X  GET  -H "Content-Type: application/json" -H "X-Api-Key":"4111"   http://192.168.x.x/api/connection' | 
    php -r '$v = ""; while($l = fgets(STDIN)) $v .= $l; $v = json_decode($v); echo $v->job->file->name;'

    bekomme ich folgende Meldung:

    curl: no URL specified!
    curl: try 'curl --help' or 'curl --manual' for more information
    PHP Notice:  Trying to get property 'job' of non-object in Command line code on line 1
    PHP Notice:  Trying to get property 'file' of non-object in Command line code on line 1
    PHP Notice:  Trying to get property 'name' of non-object in Command line code on line 1

    Wahrscheinlich stimm mein Aufruf schon nicht. Eine URL wird ja übergeben (mit richtiger IP)

    Der API-Befehl lautet so:

    curl -s -X GET  -H "Content-Type: application/json" -H "X-Api-Key":"4111"   http://192.168.x.x/api/connection > api.txt

    Das Ergebnis steht dann in der api.txt

    Jetzt wollte ich noch jq probieren aber das war auch nichts. Ich möchte doch nur, das in der api.txt nur der Dateiname steht :?:

    Hallo,

    ein API-Aufruf von Octoprint ergibt folgendes:

    {
     "job": {
       "averagePrintTime": null,
       "estimatedPrintTime": 9364.910044412876,
       "filament": {
         "tool0": {
           "length": 5443.96533203125,
           "volume": 13.094271143466216
         }
       },
       "file": {
         "date": 1729753992,
         "display": "Datei.gcode",
         "name": "Datei.gcode",
         "origin": "local",
         "path": "Datei.gcode",
         "size": 6676640
       },
       "lastPrintTime": null,
       "user": "pi"
     },
     "progress": {
       "completion": 28.97861798749071,
       "filepos": 1934798,
       "printTime": 2907,
       "printTimeLeft": 6381,
       "printTimeLeftOrigin": "genius"
     },
     "state": "Printing"
    }

    Ich versuche nun die Ausgabe nur auf den Dateinamen (Datei.gcode) zu beschränken aber alle meine Versuche mit Grep und Cut sind kläglich gescheitert. Es wäre super wenn mir jemand helfen könnte. Besten Dank vorab.