Konfiguration der pilight Web-GUI für den DHT22

Wie man den DHT22 Temperatur- und Luftfeuchtigkeits-Sensor an den Raspberry Pi anschließt und über die Kommandozeile ausliest, habe ich ja bereits hier beschrieben. Zusammen mit CurlyMoo habe ich mich nun daran gemacht den Sensor in pilight zu integrieren, so dass Temperatur und Luftfeuchtigkeit in der Web-GUI angezeigt werden.

Bis jetzt sind die Änderungen nur in der Entwicklerversion enthalten. Die Installation der Entwicklerversion läuft wie in der Anleitung zur Installation beschrieben ab, nur das man den development branch von git klont, also diesen Befehl benutzt:

git clone --depth 5 -b development https://github.com/pilight/pilight.git

Nachtrag vom 29. November 2013: Die Hauptversion wurde auf 2.1 aktualisiert. Es kann also der master-branch, wie in der Installationsanleitung beschrieben, benutzt werden.

In der Datei /etc/pilight/config.json muss folgendes als Geräte-Konfiguration für den Sensor eingetragen werden:

1
2
3
4
5
6
7
8
9
10
"temperature": {
    "name": "Temperatur",
    "protocol": [ "dht22" ],
    "id": [{
        "gpio": 7
    }],
    "humidity": 0,
    "temperature": 0,
    "poll-interval": 5
}

Ich denke die Einstellungen sind relativ selbst erklärend. Für "humidity" und "temperature" trägt pilight automatisch die ausgelesenen Werte ein. Der Pin ist über "gpio" nach den WiringPi Pin-Nummern anzugeben.

Hier noch ein Beispiel für eine komplette config.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
    "living": {
        "name": "Wohnzimmer",
        "tv": {
            "name": "TV",
            "protocol": [ "kaku_switch" ],
            "id": [{
                "id": 1234,
                "unit": 0
            }],
            "state": "on"
        }
    },
    "work": {
        "name": "Arbeitszimmer",
        "lampe": {
            "name": "Schreibtischlampe",
            "protocol": [ "kaku_switch" ],
            "id": [{
                "id": 1234,
                "unit": 1
            }],
            "state": "off"
        },
        "temperature": {
            "name": "Temperatur",
            "protocol": [ "dht22" ],
            "id": [{
                "gpio": 7  
            }],
            "humidity": 0,
            "temperature": 0,
            "poll-interval": 5
        }
    }
}

In der Web-GUI sieht das Ganze dann so aus:

pilight Webgui mit Temperatur und Luftfeuchtigkeit

pilight Webgui mit Temperatur und Luftfeuchtigkeit

Viel Spaß!

 

42 Antworten

  1. Lustfeuchtigkeitssensor? Sehr lustiger Tippfehler….oder Absicht? :)

  2. Hey Oliver,
    habe mir das ganze jetzt nachgebaut, steure bisher 9 Steckdosen und habe hier 3 dht-22 verlegt.
    Wollte Wohnzimmer, Schlafzimmer Server-Schrank überwachen.
    Hänge ich die einzelnen dhts an GPIO4 bekomme ich saubere werte rein.
    Wollte jetzt aber noch 16/18 (GPIO23/24) nutzen zum einlesen der einzelnen werte.
    dort bekomme ich lediglich den output
    „pilight-daemon: DEBUG: dht22 data checksum was wrong“
    Muss ich den 16/18er noch irgendwie festlegen?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    "tempraum": {
        "name": "Temp.",
        "protocol": [ "dht22" ],
        "id": [{
            "id": "dht22"
        }],
        "gpio": 18,
        "humidity": 0,
        "temperature": 0,
        "settings": {
            "interval": 5
        }
    }
  3. root@raspberrypi:~/rpi_dht22# sudo ./rpi_dht 5 7 4
    Data not good, skip
    Pin = 5, Humidity = 44.8 %, Temperature = 18.0 °C
    Pin = 7, Humidity = 29.7 %, Temperature = 23.9 °C
    Pin = 4, Humidity = 28.8 %, Temperature = 23.9 °C

    Haha ich depp… war ja klar sollte dann jetzt soweit alles gehen.
    das längste kabel sollte ca 5m haben.

    Bin mal gespannt was für tolle ideen du sonst noch so hast :-P
    Hat richtig spaß gemacht sich daran auszutoben

    • Habe nur ein Problem jetzt sieht es in der konsole sauber aus.
      Nur sobald ich ins Webinterface gehte bricht die verbindung zusammen …

      • Da ich leider nicht editieren kann.
        Also 2 Bekomme ich im pillight zum laufen sobald der 3 mit dabei kommt wird die connection unterbrochen.

        Was auch auffällt, der am pin 4 wird laufend aktualisiert der andere nicht.
        Oliver falls es deine Zeit erlaubt könnten wir auch mal im irc oder skype so so reden.

  4. Einen Hinweis und eine Frage:

    1 – Die Konfiguration wie gezeigt stimmt so nicht. Gemäss der pilight Seite muss im Temperatur Bereich anstelle des ID das GPIO stehen

    2 – Beim testen bekomme ich sehr oft „Data not good“ hast Du einen Erfahrung gemacht bezüglich der Stabilität beim Daten lesen 8ausser ich lese vom falschen Pin) :)

    Gruss

    • Hi Michel,

      1 – Danke für den Hinweis. Du hast Recht, das scheint sich geändert zu haben. In meiner config ist es auch noch wie von mir beschrieben. Ich habe es in der Anleitung jetzt angepasst.

      2 – Bei einem Intervall von 20 Sekunden bekomme ich zu ca 80% gute Daten. Versuche eventuell mal einen größeren bzw. kleineren Widerstand.

      Viele Grüße
      Oliver

  5. Hallo Oliver,

    Ich habe den Widerstand reduziert und rumgebastelt – ohne Erfolg.
    Bei mir läuft der development release. Entnervt habe ich dann die gpio Zeile wie folgt geändert: von „gpio“ : „7“ zu „gpio“ : 7 und siehe da es funktioniert. Anscheinend hat da nochmal eine Änderung stattgefunden – die auch nicht auf der pilight Webseite dokumentiert ist.

    Den development Release verwende ich wegen dem Problem mit dem Webserver der abschmiert wenn man eine Schalter betätigt.

    Gruss und danke

    PS: den Widerstand habe ich derzeit auf 10k.

  6. Lieber Oliver,

    welch super tutorials!

    Habe leider ein Problem mit dht22. Es werden die Daten ausgelesen, sind aber um ein vielfaches zu hoch: 724,4° und 896%.
    Was mache ich falsch!
    Mein dht22 hat nur 3 Beine und ich nutze es ohne (?) Widerstand.

    Nochmals vielen Dank für Dein Engagement.

    Gruß Walter

  7. Hallo,

    ich habe ein kleines Problem.
    Bei mir werden einmal beim Start (der Webseite) die Werte ausgelesen und angezeigt.
    Danach ändern sich die Werte nur, wenn ich auf der Kommandozeile ./loldht
    ausführe.
    Wo habe ich den Fehler gemacht?
    Viele Grüße
    Emi

    • Hallo Emi,

      das hört sich sehr komisch an. Die beiden Programme kommunizieren ja nicht miteinander. Weiß leider auch nicht wo das Problem liegt. Am besten einfach noch einmal von Vorne versuchen.

      Viele Grüße
      Oliver

  8. Hallo,
    Ich habe ein Problem mit den drei Temperatur Sensoren, die Werte überschreiben sich gegenseitig, der letzte gewinnt.

    Code dazu
    {
    „living“: {
    „name“: „Vorzimmer“,
    „Licht“: {
    „name“: „Licht“,
    „protocol“: [ „kaku_switch“ ],
    „id“: [{
    „id“: 7052878,
    „unit“: 10
    }],
    „state“: „off“
    }
    },
    „work“: {
    „name“: „Infrastruktur“,
    „W-LAN“: {
    „name“: „W-LAN“,
    „protocol“: [ „kaku_switch“ ],
    „id“: [{
    „id“: 7052878,
    „unit“: 11
    }],
    „state“: „off“
    },
    „Keller“: {
    „name“: „Keller“,
    „protocol“: [ „dht22“ ],
    „id“: [{
    „id“: 16
    }],
    „gpio“: 16,
    „humidity“: 439,
    „temperature“: 174,
    „settings“: {
    „interval“: 5
    }
    },
    „Wohnzimmer“: {
    „name“: „Wohnzimmer“,
    „protocol“: [ „dht22“ ],
    „id“: [{
    „id“: „3“
    }],
    „gpio“: 3,
    „humidity“: 439,
    „temperature“: 174,
    „settings“: {
    „interval“: 5
    }
    },
    „Aussenbereich“: {
    „name“: „Aussenbereich“,
    „protocol“: [ „dht22“ ],
    „id“: [{
    „id“: „1“
    }],
    „gpio“: 1,
    „humidity“: 439,
    „temperature“: 174,
    „settings“: {
    „interval“: 5
    }
    }
    }
    }

    • Hi nsg,

      die config sieht auf den ersten Blick gut aus. Ich habe von verschiedenen Leuten gehört, bei denen es mit mehreren Sensoren klappt. Sehr kommisch. Versuch doch mal die neuste pilight Version oder frag im pilight forum nach.

      Viele Grüße
      Oliver

  9. Kann mir jemand dabei helfen, einen einzigen Temperatursender in Betrieb zu bekommen?

    Mit dem folgenden Inhalt in der config.json erhalte ich nur diese Fehlermeldung:

    pilight-daemon: ERROR: setting #6 „settings“ of „tempraum“, invalid

    Meine CONFIG.JSON:
    {
    „test“: {
    „name“: „Test“,
    „tempraum“: {
    „name“: „Temp.“,
    „protocol“: [ „dht22“ ],
    „id“: [{
    „gpio“: 7
    }],
    „humidity“: 0,
    „temperature“: 0,
    „settings“: {
    „interval“: 5
    }
    }
    }
    }

    Kann mir hier jemand helfen? Ich konnte im gesamten Internet und hier nicht feststellen, dass bisher jemand Probleme mit dieser Option hatte.

    Das Auslesen des Senders per „sudo ./loldht 7“ klappt problemlos.

    Gruß
    Heiko

  10. @Heiko:
    Hatte grade das gleiche Problem…
    nimm mal
    [code],
    “settings”: {
    “interval”: 5
    }[/code]
    raus und probier’s nochmal – funktioniert bei mir …

  11. Hallo,

    habe das Problem das einer von 3 Sensoren nicht im Pilight angezeigt wird.
    Stope ich Pilight und frage sie Sensoren mit sudo ./loldht 4 sudo, ./loldht 3 und sudo ./loldht 7 ab, bekommen ich saubere Werte. Bei nen laufenden Pilight bekomme ich auch keine Werte mit dem Befehl.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    "temperature": {
            "name": "Temperatur Luftfeuchte",
            "temperaturserver": {
                "name": "Server",
                "protocol": [ "dht22" ],
                "id": [{
                    "gpio": 7
                }],
                "humidity": 275,
                "temperature": 316,
                "poll-interval": 5
            },
            "temperaturmoritzt": {
                "name": "Moritz",
                "protocol": [ "dht22" ],
                "id": [{
                    "gpio": 4
                }],
                "humidity": 537,
                "temperature": 197,
                "poll-interval": 5
            },
            "temperaturschalfen": {
                "name": "Schlafzimmer",
                "protocol": [ "dht22" ],
                "id": [{
                    "gpio": 5
                }],
                "humidity": 0,
                "temperature": 0,
                "poll-interval": 5
            },
            "RpiTemp": {
                "name": "Raspberry",
                "protocol": [ "rpi_temp" ],
                "id": [{
                    "id": 1
                }],
                "temperature": 61066
            }
        },

    Habe auch schon mehr gpio versucht. Keine Verbesserung

  12. Hi,

    beim testen mit loldht und wiringpi 7 bekomme ich temp & feuchte angezeigt,

    mit pilight wird mir im webgui bei temp und bei feuchte dauerhaft 0 angezeigt.
    im log schreibt er mir ständig: dht22 data checksum was wrong

    versuchsaufbau mit breadboard & ca 10cm kabellänge

    config.json
    {
    „work“: {
    „name“: „Arbeitszimmer“,
    „temperature“: {
    „name“: „Temperatur“,
    „protocol“: [ „dht22“ ],
    „id“: [{
    „gpio“: 7
    }],
    „humidity“: 0,
    „temperature“: 0,
    „poll-interval“: 5
    }
    }
    }

    • Ho,

      sieht alles richtig aus. Probiere mal einen höheres „poll-interval“ (z.B: 30). Wie hoch ist deine Prozessorauslastung?

      Viele Grüße
      Oliver

      • cpu 0,22%|mem 0,43%
        auch mit poll intervall 30 kommt immer 0grad und 0feuchte.

        habe auch schon andere wiringpi pins genommen, das selbe ergebniss.
        weiss echt nicht mehr weiter, dabei hatte ich das schonmal laufen, bevor ich das ganze system neu aufgesetzt habe.

        • sry, problem war die reihenfolge der installation.
          erst wiringpi, dann lol_dht zum testen und erst danach pilight installieren.
          jetzt funzt es endlich.

  13. Hi,
    bei mir sieht alles gut aus mit loldht am gpio 25.
    Nur leider startet pilight nicht mehr. In der Log datei steht immer :

    pilight-daemon: ERROR: device #2 „protocol“ of „temperature“, invalid field(s)

    Ich benutze einen am2302 Sensor. Sowohl das Protokoll „dht22“ , als auch das Protokoll „am2302“
    bringen die Fehlermeldung.

    Jemand eine Idee , was ich falsch machen könnte?

    • poste doch mal deine config, meist ist es nur n kleiner tippfehler der einem zur verzweiflung bringt.

      • Okay. Hab es, denk ich, korrekt drin stehen. Ist anscheinend auch valides json.

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        33
        34
        35
        36
        37
        38
        39
        40
        41
        42
        43
        44
        45
        46
        47
        48
        49
        50
        51
        52
        53
        54
        55
        56
        57
        58
        59
        60
        61
        62
        63
        64
        65
        66
        67
        68
        69
        70
        {
            "room1": {
                "name": "Wohnzimmer",
                "switch1": {
                    "name": "LED_TV",
                    "protocol": [ "pollin" ],
                    "id": [{
                        "systemcode": 31,
                        "unitcode": 2
                    }],
                    "state": "off",
                    "gui-readonly": 0
                },
                "switch2": {
                    "name": "LED_SOFA_A",
                    "protocol": [ "mumbi" ],
                    "id": [{
                        "systemcode": 2,
                        "unitcode": 11
                    }],
                    "state": "on",
                    "gui-readonly": 0
                }
            },
            "room2": {
                "name": "Buero",
                "switch1": {
                    "name": "Licht_Schreibtisch_C",
                    "protocol": [ "mumbi" ],
                    "id": [{
                        "systemcode": 2,
                        "unitcode": 13
                    }],
                    "state": "on",
                    "gui-readonly": 0
                },
                "switch2": {
                    "name": "Steckdose_B",
                    "protocol": [ "mumbi" ],
                    "id": [{
                        "systemcode": 2,
                        "unitcode": 9
                    }],
                    "state": "on",
                    "gui-readonly": 0
                }
            },
                 "temperature": {
                    "name": "Temperatur",
                    "protocol": [ "am2302" ],
                    "id": [{
                            "gpio": 25
                      }],
                    "humidity": 618,
                    "temperature": 172,
                    "settings": {
                        "poll-interval": 30
                    }
                },
            "Webcam": {
                "name": "Webcam",
                "Webcam": {
                    "name": "Webcam",
                    "protocol": [ "generic_webcam" ],
                    "id": [{
                        "url": "http://192.168.0.197:8081/srv/motion"
                    }]
                }
            }
        }
        • auch schon mal versucht den poll intervall direkt unter temperature zu schreiben, ausserhalb des settings-bereich und diesen Bereich ganz weg zu lassen?
          bei mir funzt folgende config mit dem dht22
          {
          „room1“: {
          „name“: „Raum 1“,
          „temperature“: {
          „name“: „Temperatur“,
          „protocol“: [ „dht22“ ],
          „id“: [{
          „gpio“: 7
          }],
          „humidity“: 0,
          „temperature“: 0,
          „poll-interval“: 5
          }
          },
          „RpiTemp“: {
          „name“: „Raspberry Pi Temp.“,
          „temperature1“: {
          „name“: „Temperatur“,
          „protocol“: [ „rpi_temp“ ],
          „id“: [{
          „id“: 1
          }],
          „temperature“: 41160
          }
          }
          }

          • Danke für den Tip. Bin jetzt zwar etwas weiter gekommen, aber leider immer noch mit Fehlermeldung. Irgendwas stimmt wohl mit meinem wiringpi Setup nicht.Folgender Fehler kommt jetzt:
            [code] Starting : pilight/usr/local/sbin/pilight-daemon: symbol lookup error: /usr/local/lib/pilight/protocols/dht22.so: undefined symbol: wiringPiSetup
            [/code]

          • Okay. Hab mal das dht22 protocol deinstalliert. Jetzt startet pilight ordnungsgemäß, nur leider zeigt es mir nur null an bei Temperatur und Luftfeuchte. Ich bastel dann mal weiter.:)

          • Hi,

            mit welcher Version von pilight arbeitet ihr? Ich würde es mal mit der master probieren.

            1
            git clone --depth 5 -b master https://github.com/pilight/pilight.git

            Viele Grüße
            Oliver

  14. Hi,

    kann mir bitte einer verraten warum ich den DHT22 am gpio 7 zum laufen bekomme, aber an keinem anderen? Im Prinzip geht es mir wohl wie Timo…

    Besten Dank
    Sebastian

  15. Moin Oliver,
    habe mich heute mal dran gesetzt und den Pilight von v2 auf v5 upgedatet.
    Bekomme permanent den Fehler: [Nov 23 15:13:14:522913] pilight-daemon: ERROR: device #6 „temp-wohn1“ of „living“, not alphanumeric

    Was ist um Gottes willen sein problem?!
    Es lief doch vorher auch alles bestens und Stabil!

    auszug aus der cfg:
    „temp-wohn“: {
    „name“: „Raum“,
    „protocol“: [ „dht22“ ],
    „id“: [{
    „gpio“: 4
    }],
    „humidity“: 320,
    „temperature“: 212,
    „gui-show-temperature“: 1,
    „gui-show-humidity“: 1,
    „poll-interval“: 60,
    „gui-decimals“: 2
    },

    Hoffe du kannst mir einen denkanstoß geben ;)

  16. Liese sich das noch durch die Anzeige des Sonnenaufgangs/ untergangs erweitern?

  17. Hallo,

    bei mir wird nur die obere zeile angezeigt sprich pilight ohne Temperatur sensor oder sonstiges! habe es mit mehreren configs probiert ohne erfolg!

    hat jemand eine Idee?

  18. Hallo, bei mir ist leider das Problem wenn ich die config änder komm ich nicht mehr mit den Browser auf die GUI. Ich möchte einfach nur einen Temperatursensor ansteuern ohne Steckdosen usw. anscheinend bin ich zu blöd :( Der Sensor lässt sich aber auslesen. Kann mir jemand einen Tip geben?

    mfg Karsten

  19. Hallo, wo unter welchem Punkt muss man das eintragen also die zeilen vom dem Tempratursensor „temperature“: {
    unter Devices? Ich habe ein frisch installiertes System und möchte jetzt nur einen Tempratursensor als Grafik in der Weboberfläche sehen. Muss ich da auch erst Räume anlegen?
    Ich verstehe leider die config nicht. wäre um Hilfe Dankar.

    mfg Karsten

Schreibe einen Kommentar

Home pilight Konfiguration der pilight Web-GUI für den DHT22
© sweet pi - sweet home
Top