Json Parsen am liebsten mittels Blockly

  • Hallo,

    Ich stehe momentan vor einem Rätsel. Ich habe einen Feinstaubsensor nach https://luftdaten.info. Dieser gibt die Daten auch per Json aus. Hieraus würde ich die Daten gerne in Domoticz importieren.

    Die JSon Ausgabe sieht folgendermassen aus:

    Code
    {"software_version": "NRZ-2017-099", "age":"139", "sensordatavalues":[{"value_type":"SDS_P1","value":"7.63"},{"value_type":"SDS_P2","value":"4.23"},{"value_type":"temperature","value":"8.30"},{"value_type":"humidity","value":"27.30"},{"value_type":"samples","value":"617412"},{"value_type":"min_micro","value":"229"},{"value_type":"max_micro","value":"25617"},{"value_type":"signal","value":"-67"}]}

    Die Configuration des Sensors sieht so aus:

    Evtl. Wäre ja auch die möglichkeit über die eigene Api zu gehen Sinnvoll, aber mir der habe ich mich noch nicht beschäftigt. An die Json komme ich über: http://IP.des.Sensors/data.json

    Wie kann ich diese Daten in Domoticz einbinden?

    Grüssle

    • Offizieller Beitrag

    Kannst Du eigentlich auch mal konstruktiv helfen? ;)

    Du würde ich gerne und mache ich auch .. Aber ich habe kein Domotics und ich kenne mich damit auch zu wenig aus .. Aber es werden sich hier sicher einige melden. Wobei ich denke das dies eventuell das falsche Forum ist. Hier geht es in erster Line um die Sonoff von Creation X .. Viellcheit wäre es Sinnvoll, solche Fragen direkt im Domoticz Forum zu posten? ;););)

    Wenn du mich über iOBroker fragen würdest da könnt ich dir sicher konstruktiv helfen. Domoticz ist für mich immer wie eine Dauerbaustelle unheimlich viel Handarbeit und programmierung .. Ich mag Systeme am liebsten klick and Go Blockly lass ich mir noch gefallen alles andere lässt auch mein Zeitlicher Rahmen nicht zu.

    Nichts für ungut :)

    Gruß

    Norbert

  • Habe den Sensor nun mal aufgebaut und nach Stuttgart gemeldet.

    Hoffe ich bekomme es auch in Domoticz zur Ansicht.

    Kannst du dein LUA Script mal posten ?

    Insbesondere wo trage ich die Sensor-ID ein, und wo die IDX für die Domoticz Dummys

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

    2 Mal editiert, zuletzt von mafrei (23. November 2018 um 21:32)

  • Mit dem Script hat es bei mir Funktioniert.

    Musst aber Domoticz neu starten und paar Minuten warten bis es läuft, da Sensor und Abfrage an Sensor über das Script asynchron läuft.

    Du musst das Ereignis (das Script) als dzVents anlegen.

    Ich lasse meinen Sensor nur aller 10 min messen und hab die Abfrage vom Script nicht jede Minute, sondern aller 3 Minuten laufen. Funktioniert bis jetzt ganz gut.

  • Hi, zunächst mal danke für die Info.

    Du hast also nur das LUA Sript, kein Python Sript zusätzlich auf dem Raspi?7


    local FQDN = 'deine IP Adresse des Sensors' und

    url = 'http://'deine IP des Sensors'/data.json',

    jeweils gleiche IP, nicht die Sensor ID?

    Ich werd heute Abend mal eingeben.

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

  • Hi,

    leider klappt es nicht ganz. Stimmt das so :

    local FQDN = '192.168.178.33'

    url = 'http://'192.168.178.33'/data.json',

    -------------------------------------------------------------

    Die Namen der Dummys:

    SDS_P1 PM10

    SDS_P2 PM2.5,

    DHT22 temp,

    BME280 baro

    oder

    Luftdaten PM10

    Luftdaten PM2.5

    Luftdaten DHT22

    Luftdaten BME280

    holt er sich hier jeweils die Namen?

    dz.log("sensordatavalues[1].value: " .. item.json.sensordatavalues[1].value, dz.LOG_DEBUG )

    bin etwas verwirrt.

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

    Einmal editiert, zuletzt von mafrei (27. November 2018 um 14:56)

  • Hallo mafrei,

    jetzt nehm ich mir doch mal bissel mehr Zeit für dich ;)

    1. theoretisch würde man die erste Zeile nicht benötigen. - Ich bin auch kein Programmierer und such mir immer die Puzzle aus dem Netz zusammen. In Zeile 1 definiert der Urheber einfach nur die Variable mit der IP des Sensors. Da diese IP hier nur in Zeile 17 benötigt wird, ist es wahrscheinlich überflüssig. Man hätte da wohl statt der IP auch FQDN eintragen können. Wenn sich später mal die IP ändert, trägt man diese nur in der Variable FQDN ein und überall wo diese verwendet wird, wird automatisch die neue IP gesetzt.

    2. die grün markierten Zeilen sind aus kommentiert. Das bekommst du mit den setzen der "--[[ ... ]]--" hin.

    Wenn du Zeile 25 bis 41 wieder ein kommentierst indem du die Klammern raus nimmst, würden die ausgelesenen werte im Domoticz log file auftauchen. Das hatte der Urheber für trouble shooting rein genommen um zu sehen, ob überhaupt was vom Sensor geholt wird. Wenn dann im Log File was angezeigt wird, aber nicht in deinen Sensor Dummys weist du erst mal das der Sensor abgefragt wurde, aber die Übermittlung an die Dummys fehl schlägt. Dann kann es nur noch an der Benennung der Dummys liegen.


    3. Die in Zeile 43 bis 45 angegebenen Sensornamen (rot markiert mit '...') müssen exakt mit deinem Dummys überein stimmen.

    Du kannst Diese auch beliebig umbenennen. Dann muss aber der Name im Skript und der Dummy Sensorname exact überein stimmen.

    Viel Erfolg.

    Grüße,

    mac_switch

  • So hatte ich es auch werd da morgen nochmal alles neu machen.

    Derzeit bekomme ich immer

    2018-11-27 18:04:00.534 Error: Error opening url: http://192.168.178.33/data.json

    obwohl ich diese im Browser aufrufen kann.

    Danke zunächst mal, werd morgen Info geben, für heute reichts mir.

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

    Einmal editiert, zuletzt von mafrei (27. November 2018 um 19:18)

  • Aus deinem Bild sah ich den Fehler, meine Bezeichnung waren grün, also nicht aktiv.

    Nun liest er die Dateh ein, fehlt aber noch die Angabe der Ma0einheit wie bei dir zu sehen.

    Mus wohl einen andren Dummy auswählen, nicht Customer.

    Welchen Sensortyp hast du bei Domoticz ausgewähli ?

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

    Einmal editiert, zuletzt von mafrei (27. November 2018 um 19:18)

  • nein keinen Anderen... für "Luftdaten PM2.5" und "Luftdaten P10" nimmst du den Custom Sensor und trägst bei der Achsenbeschriftung "µg/m3" ein. Das musst du manuell machen da die Maßeinheit nicht mit umausgelesenen Daten.json steht, sondern nur nackte Werte.

    Für "Luftdaten DHT22" nimmst du den Sensortyp Temp+Humi... dann wird es klappen.