Hallo.
Heeft iemand al geprobeerd om script te maken voor de nieuwe Siemens LOGO! 8.4 om de MQTT publish waardes uit te lezen in Homey.
Ik kan Homey wel waardes laten versturen via de kaart MQTT client verstuur
Alleen de uitgelezen waardes via de lees het verstuurde bericht op de trigger mqtt client kan ik niet vertalen in een waarde waar ik in de Homey iets mee kan
Voorbeeld van het ontvangen bericht van de LOGO
{“state”:{“reported”:{“buitentemp”:{“desc”:“AM-word-1-1”,“value”:[222]},“buitenvocht”:{“desc”:“AM-word-3-1”,“value”:[536]},“$logotime”:1716238693}}}
Het ontvangen bericht is in JSON format.
Je kunt dan de logica JSON flowkaartjes gebruiken om bepaalde waardes uit het bericht te filteren.
Voor buitentemp is dit het in te vullen pad: $.state.reported.buitentemp.value
en voor buitenvocht: $.state.reported.buitenvocht.value
Het is wel jammer dat de waarde [222] is, i.p.v. gewoon numeriek 222, want dat kun je direct als numerieke waarde gebruiken en/of naar een numerieke variabele schrijven;
Als tussenstap moeten de [ ] tekens gefilterd worden.
Dat kan met een klein homeyscriptje, neem hiervoor de DAN kaart ‘Run code met argument en return Number-Tag’ zoals hieronder te zien;
Daar het getal 222 heel waarschijnlijk de temperatuurwaarde 22,2 moet zijn, delen we het getal meteen door 10, afgerond op 2 decimalen:
Voorbeeld:
De code die ik heb gebruikt:
(deze maakt automatisch de HomeyScript tag [HS_tag_buitentemp_wwassink] aan en zet de gestripte waarde erin)
// strip [] from value [123] and divide by 10
const arg = args[0];
var realNum = Number('' + ( arg.split("[")[1].split("]")[0] ))
// divide by 10, rounded to 2 digits:
var realNumHuman = Math.round((realNum / 10) * 100)/100;
await tag('HS_tag_buitentemp_wwassink', realNumHuman);
console.log(args[0]);
return realNumHuman;
Hallo ,
Hartelijk dank jullie voor de snelle reacties
Heb nu nog 2 dagen storingsdienst en dan ga ik weer met dit bezig
Haal de info niet via een api call binnen maar gebruik de broker van Homey
en haal de informatie op met een MQTT client kaart met trigger wanneer een bericht is ontvangen en maak dan een notificatie met a bericht ontvangen via topic
m vr gr,
Wilco Wassink
Ach, had ik kunnen weten Ik gebruikte [0] ook bij de split functie .
Maar ik had nooit bedacht (niet opgezocht) dat dan de [ ] brackets weggelaten worden.