TS0601 Soil Sensor in mqttthing einbinden homebridge

  • Hi,

    ich habe das Problem, das mein soil sensor über zigbee2mqtt sauber erkannt wird und auch die payload komplett an den mqtt broker kommuniziert wird:

    Zigbee2MQTT:info 2023-07-23 17:42:32: MQTT publish: topic 'zigbee2mqtt/ZBSOIL02', payload '{"battery":100,"battery_state":"high","linkquality":72,"soil_moisture":2,"temperature":27,"temperature_unit":"celsius"}'

    In homebridge werden durch das Plugin z2m zwei Devices angelegt. Einer mit Batterie Status und einer mit Temperatur.

    Der Feuchtigkeitsstatus (soil_moisture) wird aber nicht verwendet um ein Device anzulegen. Genau diesen Wert benötige ich aber.


    Nun dachte ich ich ziehe mir diesen wert über das Plugin mqttthing:


    {
                "type": "humiditySensor",
                "name": "ZBSOIL02_MQTT",
                "url": "mqtt://192.168.XXX.XXX:1883",
                "topics": {
                    "getCurrentHumidity": {
                        "topic": "zigbee2mqtt",
                        "apply": "return JSON.parse(message).ZBSOIL02.soil_moisture"
    }
    },
                "accessory": "mqttthing",
                "validate": false
    },


    Leider wird zwar ein Device durch mqttthing angelegt, allerdings ohne Wert. Ich habe nun schon alles mögliche probiert, bekomme aber keinen Wert im Device ermittelt.


    Wie muss ich die Abfrage aufbauen, damit ich da was bekomme?


    Vielen Dank schon im voraus.



    Einmal editiert, zuletzt von riscpower ()

  • Moin,

    Falls du auf eine Lösung deines Problems kommst, schreib es mal bitte hier. Ich hab von den Sensoren auch ein paar und würde sie auch gerne in Home Einbinden. Ich hab es bis jetzt über das Tuya Plugin probiert aber Mit dem überschreiben bekomme ich es nicht hin. Daher bin ich auch an einer Lösung interessiert ;)


    Beste Grüße 🖖

  • "apply": "return JSON.parse(message).ZBSOIL02.soil_moisture"

    Hmmm. Muss es nicht


    "topic": "zigbee2mqtt/ZBSOIL02",

    "apply": "return JSON.parse(message).soil_moisture"


    heißen?

  • Habe ich auch schon probiert. Kommt leider kein Wert im Device an. Habe auch mal folgendes probiert:

    "apply": "return JSON.parse(message)['soil_moisture']"

    leider auch ohne Erfolg

  • Also, bei mir geht das. Ich habe zwar keinen TS0601-Sensor, aber ich habe einen MQTT-Broker (mosquitto) und habe dort einfach per Hand was hingesendet.


    So sieht meine Konfiguration aus:

    Ein gewichtiger Unterschied ist, dass es unter "topics" heißt: getCurrentRelativeHumidity und nicht so, wie du es oben angegeben hast.


    Ich habe dann an das Topic zigbee2mqtt/ZBSOIL02 einfach dieses Zeugs gesendet:

    {"battery":100,"battery_state":"high","linkquality":72,"soil_moisture":88,"temperature":27,"temperature_unit":"celsius"}


    In der Home-App kann ich den Wert nicht finden, aber in EVE und in Controller for HomeKit. Zeigt bei mir jetzt 88% an und auch live die Wertänderung, wenn ich einen anderen Wert an das Topic sende. Zum Versenden der Daten an den MQTT-Broker habe ich MQTT Explorer auf einem Mac verwendet.

  • Vielen Dank / ich werde das gleich heute Abend ausprobieren und Rückmeldung geben.

    Vielen lieben Dank. Genau das war es. Nun habe ich die Werte.

    Wie kommt man darauf? gibt es da eine Beschreibung zu mqttthing in der man das nachvollziehen kann?

    Das ist echt großartig freue mich sehr.


    3 Mal editiert, zuletzt von riscpower () aus folgendem Grund: Hab es gefunden: https://github.com/arachnetech/homebridge-mqttthing/blob/master/docs/Accessories.md#humidity-sensor

  • Wie kommt man darauf?

    Da kommt man nicht von selber drauf. Ich hab's irgendwann auch mal gebraucht und beim Internetbuddeln irgendwo gefunden. Es mag sein, dass ich es aufgrund meiner Ausbildung schneller erkenne als Leute, die diese Ausbildung nicht haben. Ich bin beruflich seit 32 Jahren Systemadmin und habe vorher für irgendwelche Leute irgendwelche Programme geschrieben. Da lernt man mit der Zeit, welche Fragen man Google wie stellen muss (oder vor Google: welches Buch man in welcher Fachbibliothek ausleihen oder kaufen muss).


    gibt es da eine Beschreibung zu mqttthing in der man das nachvollziehen kann?

    Nur in deren Doku. Die ist sehr ausführlich, aber nicht einfach zu verstehen. Nachvollziehen kann ich da auch nicht viel und probiere dann aus, was die da so hinschreiben. Meine berufliche Erfahrung ist dann sehr hilfreich. Ich spreche deutsch und englisch, und darüber hinaus halt auch JSON, ebenfalls verhandlungssicher


    Ein Tipp: man kann Google zwingen, eine bestimmte Site nach Suchbegriffen zu durchsuchen: die Eingabe von site:https://github.com/arachnetech/homebridge-mqttthing JSON in der Adresszeile des Browsers durchsucht nur die die Site https://github.com/arachnetech/homebridge-mqttthing nach dem Suchbegriff JSON. Kann hilfreich sein.