Homey Community Forum

Hoe gebruik ik de kaart: "Mqtt client ontvang topic triggers"

#1

Hi,
Het is een tijdje geleden (in v1) dat ik dit probeerde, maar nu in Homey v2 zit ik te puzzelen hoe dit nou werkt.
Ik wil een MQTT topic uitlezen in een flow.

Wat ik wil is in de ‘when’ de kaart “MQTT Client, ontvang topic triggers” gebruiken om een CO2 waarde uit te lezen. Waarmee ik dan iets kan starten of een virtueel device vullen oid.

In MQTT Explorer zie ik:

Ik gebruik MQTT broker als app in Homey, het ip nummer dat je je ziet is die van homey.
In MQTT Explorer zie je die waarde van de CO2 meter ook verschijnen, mooi dus.

Nu wil ik een flow maken die er zo uit ziet:

Domweg, als er een waarde binnenkomt, stuur een pushbericht naar de mobiel.

Hoe gebruik ik de kaart “MQTT Client: Ontvang topic triggers”?
Wat vul ik daar in en hoe?

#2

The topic is tele/sensor1/SENSOR. The rest is the message (“Bericht ontvangen via topic”).

You need something to parse that message and extract the required value from it. I don’t know if there are any JSON-parser-cards; if not, you may require something like HomeyScript.

(maar dan in het Nederlands :sweat_smile:)

1 Like
#3

Dag Robert,
Dank voor je reply. Ik denk dat ik het begrijp.
Toch een beetje onderschat dan denk ik, ik dacht die topic is er met die waardes, kun je gewoon opvragen en dan heb je ze en ga je er mee verder.
Gaan programmeren is niet iets voor mij, daar verzuip ik in. Ik laat het er maar bij dan.
Dank voor de info.

#4

Opgeven??

Misschien kan je deze eens proberen om te kijken wat er binnen komt?

#5

Dan krijg ik precies iedere 5 minuten een pushbericht:

#6

En je weet ook vast waar die berichten vandaag komen?
Want dan kan je misschien met een GET Json kaart die Carbon ophalen en in een variabele stoppen?

#7

Sorry, ik ben je kwijt. (bedoel je een wemosD1 met tasmota erop en een MHZ19b CO2 meter?)

Ik zou niet weten hoe ik dat moet doen.

#8

De data is zo te zien afkomstig van een Sonoff Tasmota apparaat. Daar kun je via HTTP commando’s naartoe sturen, en de reply is JSON.

Voor de sensor data wordt dat zoiets:

http://192.168.1.10/cm?cmnd=status%208

In het resultaat zou de sensor data moeten staan.

Een mogelijke flow opzet wordt dan:

  • een “Ontvang topic triggers” voor topic tele/sensor1/SENSOR (de reden voor deze trigger/flow is dat je daarmee netjes wacht totdat er nieuwe data is)
  • als action “Start een flow” die de volgende flow aanroept:
  • een nieuwe flow die een HTTP request stuurt naar bovengenoemde URL (ik vermoed met de kaart “GET JSONpath equation”)
  • het resultaat daarvan kun je gebruiken in een push notification

@Blarp die HTTP requests kun je uitvoeren met deze app: https://apps.athom.com/app/com.internet

1 Like
#9

Jep!
http://192.168.1.17/cm?cmnd=Status%208
geeft als resultaat:
{“StatusSNS”:{“Time”:“2019-05-07T08:50:24”,“ANALOG”:{“A0”:3},“MHZ19B”:{“CarbonDioxide”:486,“Temperature”:18.0},“TempUnit”:“C”}}

Bedankt Robert!

Nou @Rocodamelshe, kom er maar in. Hoe ‘filter’ ik de waarde van de CarbonDioxide er nu uit om verder te gebruiken in bijv opslaan in een variable?

#10

Ik ga er ff van uit dat het resultaat die je opgaf het hele resultaat is.

Eerst even een number variabele aanmaken met de Better logic app.
In het bovenste vakje de url die je net gaf.

In het middelste vakje komt :
$.StatusSNS.MHZ19B.CarbonDioxide
Let op: HoofdletterGevoelig!

In het onderste vakje type je de naam van je net aangemaakte nummer variabele.

chrome_2019-05-07_16-36-17

2 Likes
#11

Dat moet $.StatusSNS.MHZ19B.CarbonDioxide zijn :slight_smile:

2 Likes
#12

Aangepast, thnx

1 Like
#13

En Bingo!
Maar echt, daar was ik nooit opgekomen om in te vullen.
Bedankt!

1 Like