433 Mhz Funktemperatursensoren auslesen

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • 433 Mhz Funktemperatursensoren auslesen

      Eigentlich habe ich bereits in einem anderen Beitrag hier beschrieben, wie ein 433 Mhz Funktemperatursensoren ausgelesen werden kann.
      Dennoch finde ich, dass das ganze mal in den richtigen Bereich einfließen sollte.

      Zuallererst muss geprüft werden, ob die Daten Funktemperatursensoren empfangen werden.
      Dazu pilight-receive in die CLI eingeben und warten.

      Irgendwann sollte etwas in der folgenden Art auftauchen:

      Source Code

      1. {
      2.         "message": {
      3.                 "id": 1490,
      4.                 "temperature": 26.4,
      5.                 "humidity": 41.0,
      6.                 "battery": 1
      7.         },
      8.         "origin": "receiver",
      9.         "protocol": "alecto_ws1700",
      10.         "uuid": "0000-b8-27-eb-0f3db7",
      11.         "repeats": 4
      12. }
      Display All


      In diesem Codeausschnitt seht ihr die mittels eures 433 MHz Empfängers empfangenen Daten.
      Um diese nun nach SHC zu bekommen, benötigt ihr folgendes Script.

      Shell-Script

      1. #!/bin/bash
      2. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/pi
      3. timeout 120s pilight-receive > /tmp/pilight.txt
      4. HUM=$(jq 'select(.message.id == 1490)| .message.humidity' /tmp/pilight.txt| xargs -n1 | tail -1)
      5. TEMP=$(jq 'select(.message.id == 1490)| .message.temperature' /tmp/pilight.txt| xargs -n1 | tail -1)
      6. if [ -z "$TEMP" ]; then
      7. echo "$TEMP is empty"
      8. else
      9. curl "http://localhost/shc/index.php?app=shc&a&ajax=pushsensorvalues&spid=1&sid=1&type=2&v1=${TEMP}&v2=${HUM}"
      10. fi
      Display All


      In diesem müsst ihr die entsprechende ID Nummerierung in Zeile 5 und 6 ändern und evtl. die Adresse zu eurem Raspberry.
      Solltet ihr bereits die ID 1 bereits vergeben haben, müsst ihr diese natürlich ebenfalls ersetzen.

      Weiterhin ist zu beachten, das euer Raspberry für die Ausführung von jq Jessie installiert haben muss.
      Eine Ausführung unter Wheezy ist leider nicht möglich, da jq für diese Version nicht kompiliert wurde.
      Falls ihr jq noch nicht installiert habt: sudo apt-get install jq

      Das Skript speichert ihr dann auf eurem Raspberry ab und lasst es bspw. alle 5 Minuten mittels eines Cronjobs ausführen.
      Anschließend werden alle 5 Minuten die Daten der Funktemperatursensor übertragen hat, an das SHC übertragen.

      The post was edited 1 time, last by rgarcia ().

    • RE: 433 Mhz Funktemperatursensoren auslesen

      Hallo

      Möchte auch einen Funktemperatursensor in SHC einbinden,
      aber leider ist Software nicht so meine Stärke.
      Ausgelesen habe folgenes Model.

      Model Ventus W186-D

      Source Code

      1. "message": {
      2.                "id": 96,
      3.                "temperature": 1.1,
      4.                "humidity": 99.0,
      5.                "battery": 1
      6.        },
      7.        "origin": "receiver",
      8.        "protocol": "alecto_wx500",
      9.        "uuid": "0000-b8-27-eb-cb3ea0",
      10.        "repeats": 5


      Shell-Script

      1. #!/bin/bash
      2. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/pi
      3. timeout 120s pilight-receive > /tmp/pilight.txt
      4. HUM=$(jq 'select(.message.id == 96)| .message.humidity' /tmp/pilight.txt| xargs -n1 | tail -1)
      5. TEMP=$(jq 'select(.message.id == 96)| .message.temperature' /tmp/pilight.txt| xargs -n1 | tail -1)
      6. if [ -z "$TEMP" ]; then
      7. echo "$TEMP is empty"
      8. else
      9. curl "http://raspberry/shc/index.php?app=shc&a&ajax=pushsensorvalues&spid=1&sid=1&type=2&v1=${TEMP}&v2=${HUM}"
      10. fi
      Display All


      So würde ich es dann machen.

      1. sudo nano funktemperatursensor.sh

      2. sudo cp funktemperatursensor.sh /home/pi

      3. In "crontab -e"   " 5 * * * * /home/pi/funktemperatursensor.sh " einfügen.

      4. Neustart

      Kann ich die Adresse zu SHC so lassen ?
      Kann besser Hardware als Software !
    • RE: 433 Mhz Funktemperatursensoren auslesen

      premo wrote:


      1. sudo nano funktemperatursensor.sh

      2. sudo cp funktemperatursensor.sh /home/pi

      3. In "crontab -e"   " 5 * * * * /home/pi/funktemperatursensor.sh " einfügen.

      4. Neustart

      Kann ich die Adresse zu SHC so lassen ?


      1. Passt so
      2. Kannst du dir sparen wenn du funktemperatursensor.sh direkt unter dem /home/pi Pfad erstellst
      3. sudo crontab -e und folgendes einfügen "*/5 * * * * /home/pi/funktemperatursensor.sh" andernfalls läuft den Job immer um fünf nach.
      4. Das Skirpt ausführbar machen dazu sudo chmod +x funktemperatursensor.sh
      5. Neustarten braucht du nicht - zum testen kannst du das Skript auch einfach mal händisch ausführen (sudo ./funktemperatursensor.sh) und anschließend in die Sensorpunkte schauen

      Die Adresse kannst du so lassen wenn dein raspberry im DNS auch raspberry heißt. Andernfalls abändern - kannst auch localhost eintragen *hab ich eben mal angepasst*

      The post was edited 1 time, last by rgarcia ().

    • RE: 433 Mhz Funktemperatursensoren auslesen

      Danke, das war es!

      Kann man auch mehrere so in SHC betreiben.

      Wie sieht es mit der Entfernung zum 433 Empfänger aus.
      Gerade bei dem Einrichten wurde FTS (ca. 0,5 m) ja in SHC angezeigt.
      Jetzt befindet sich der FTS ca. 2,5 m im Aussenbereich
      vom Empfänger entfernt und es wird nichts mehr empfangen.
      Kann besser Hardware als Software !

      The post was edited 1 time, last by premo ().

    • RE: 433 Mhz Funktemperatursensoren auslesen

      So etwa  :blush:

      Shell-Script

      1. #!/bin/bash
      2. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/pi
      3. timeout 120s pilight-receive > /tmp/pilight.txt
      4. HUM=$(jq 'select(.message.id == 96)| .message.humidity' /tmp/pilight.txt| xargs -n1 | tail -1)
      5. TEMP=$(jq 'select(.message.id == 96)| .message.temperature' /tmp/pilight.txt| xargs -n1 | tail -1)
      6. HUM=$(jq 'select(.message.id == **)| .message.humidity' /tmp/pilight.txt| xargs -n1 | tail -1)
      7. TEMP=$(jq 'select(.message.id == **)| .message.temperature' /tmp/pilight.txt| xargs -n1 | tail -1)
      8. if [ -z "$TEMP" ]; then
      9. echo "$TEMP is empty"
      10. else
      11. curl "http://raspberry/shc/index.php?app=shc&a&ajax=pushsensorvalues&spid=1&sid=1&type=2&v1=${TEMP}&v2=${HUM}"
      12. curl "http://raspberry/shc/index.php?app=shc&a&ajax=pushsensorvalues&spid=2&sid=2&type=2&v1=${TEMP}&v2=${HUM}"
      13. fi
      Display All
      Kann besser Hardware als Software !
    • RE: 433 Mhz Funktemperatursensoren auslesen

      Auf die schnelle würde ich eher sagen so:
      Ansonsten schickst du immer nur den letzten Sensor Wert.

      Shell-Script

      1. #!/bin/bash
      2. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/pi
      3. timeout 120s pilight-receive > /tmp/pilight.txt
      4. HUM1=$(jq 'select(.message.id == 96)| .message.humidity' /tmp/pilight.txt| xargs -n1 | tail -1)
      5. TEMP1=$(jq 'select(.message.id == 96)| .message.temperature' /tmp/pilight.txt| xargs -n1 | tail -1)
      6. HUM2=$(jq 'select(.message.id == **)| .message.humidity' /tmp/pilight.txt| xargs -n1 | tail -1)
      7. TEMP2=$(jq 'select(.message.id == **)| .message.temperature' /tmp/pilight.txt| xargs -n1 | tail -1)
      8. if [ -z "$TEMP1" ]; then
      9. echo "$TEMP1 is empty"
      10. else
      11. curl "http://raspberry/shc/index.php?app=shc&a&ajax=pushsensorvalues&spid=1&sid=1&type=2&v1=${TEMP1}&v2=${HUM1}"
      12. fi
      13. if [ -z "$TEMP2" ]; then
      14. echo "$TEMP2 is empty"
      15. else
      16. curl "http://raspberry/shc/index.php?app=shc&a&ajax=pushsensorvalues&spid=1&sid=2&type=2&v1=${TEMP2}&v2=${HUM2}"
      17. fi
      Display All


      Die if muss auch verdoppelt werden, da wir keine leeren Werte senden wollen falls der Sensor mal Probleme bereitet.
      Abschließen muss natürlich noch die Sensor ID in der URL inkrementiert werden.

      The post was edited 1 time, last by rgarcia ().

    • RE: 433 Mhz Funktemperatursensoren auslesen

      Moin
      Wollte mal schauen ob der Aussensensor noch läuft,
      aber leider nicht.
      Komischerweise ist die Datei "funktemperatursensor.sh"
      leer.

      Habe dann nach der Anleitung alles neu gesetzt.
      Jetzt erscheint bei "sudo ./funktemperatursensor.sh"
      die Ausgabe (Foto).
      Images
      • 2.2.6 AussenSensor.JPG

        25.21 kB, 498×91, viewed 172 times
      Kann besser Hardware als Software !