Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

MQTT og VDs


Anbefalte innlegg

Hei

Jeg benytter mcsMQTT i HS4 og en elller annen oppdatering enten i plugin´en eller HS gjorde at oppsettet mitt ikke lebgre fungerer like bra.

 

Jeg har flere VDs hvor jeg lagrer "setpunkter" for vifter(min/med/max) og modier(varme/kulde) og disse har jeg overført til et smartpanel med MQTT hvor jeg kan lese og modifisere verdiene. Oppdateringer skjer begge veier. I MQTT-oppsettet har jeg brukt $$STATUS: i feltet for "MQTT Publish Payload Template"  og dette har "trykket ut" tekst-verdiene på payloaden slik jeg ønsker. Oppdateringer kom tilbake som tekst-verdier også og har tydeligvis "koblet" seg opp til status-feltet i VD´en. Dette har fungert finfint i alle henseender.

 

Nå fungerer dettte ikke like bra, og jeg klarer ikke å sette tekst-verdiene fra "kommandoknapppene " i en VD dersom jeg bruker $$STATUS:, og etter litt "teksting" på HS-forumet fikk jeg tips om å benytte $$LABEL: istedet. Grunnen til dette er at plugin reagerer på knappetrykk gjennom $$LABEL. Nå fungerer den gjensidige oppdateringen mellom VD i HS og smartpanelet...MEN...så kan jeg ikke lenger bruker VD´en i EasyTrigger events action (set device to another device). Grunnen er at EasyTrigger nok bruker value eller status og IKKE label hvor informasjonen min nå befinner seg.  Det er (kanskje naturlig nok?) ikke noen automatisk aligenment mellom treenigheten value, status og label...ved oppdatering av label. Kjører jeg de gamle eventene så settes de egentlige status-verdiene som ligger "bak/under" det som tilsynelatende ser ut som status, men er label.

 

Så nå er jeg i en liten knipe. Finnes det noen måte når man subscriber å få innkommende payload til å bli "trøkket inn i" VD´ens status (istedet for label som jeg tror er saken dersom man benytter $$LABEL på publish)? Ser at nederst i MQTT-oppsettet at det er noe som muligens kan gjøre noe slikt?

image.thumb.png.30c192e93591308334589fbc63747d22.png

Endret av Fjosepose
Lenke til kommentar
Del på andre sider

Så den replacement-variabelen, men tiggget ikke at forkortelsen kunne bety dette! Høres svært lovende ut, skal på hyttetur med familien, men har seff med laptop for situasjoner som dette[emoji3]


Sent from my iPhone using Tapatalk

Lenke til kommentar
Del på andre sider

Ser ut til at jeg allerede hadde prøvd $$VSP: uten hell, gjorde noen flere forsøk nå uten å lykkes.

For ordens skyld, det er her du mente at jeg skulle dette den inn:

image.thumb.png.b696ac4fb7087de5a27a4909ab4ea9a2.png

 

Ser ut ut til at VDen ikke klarer å publisere til broker status når jeg trykker på knappene:

image.thumb.png.93b1899310837a9756d8ac4ad12c03df.png

Ser dog at timestamp endrer seg men "verdiene" (her står de på min) endrer seg ikke.

 

Jeg klarer dog å endre på disse "verdiene" fra den andre klienten.

 

 

Lenke til kommentar
Del på andre sider

1 hour ago, Moskus said:

Kan du sjekke med MQTT Explorer hva som blir publisert når du trykker på knappene?

Jeg kan til enhver tid se hva som skjer på brokeren, men koblet meg opp med MQTT-explorer. Med å benytte $$STATUS i "MQTT Publish Payload Template"  så ble tydeligvis ingenting publisert. Dvs om jeg feks har min/med/max eller off/on så vil første knappetrykk virke, deretter slutter hhv min og off-knappene å reagere i påfølgende trykk. Om jeg bruker $$LABEL så suser all informasjon mellom HS VS og den andre klienten helt fint. Bivirkningen er at denne informasjonen ikke kan benyttes i events da det tydeligvis kun er value eller status som er med der. Slik jeg skjønner McSharry så er det $$LABEL som trigger MQTT om man opererer VDen med knappetrykk.

 

Det å benytte $$STATUS har fungert helt prikkfritt fram til en eller annen gang i våres...husker ikke helt da mye av tiden har gått med til å pusse opp bad og det medførte at HS ikke ble tilgodesett med tilstrekkelig omsorg.

 

For ordens skyld så bruker jeg non-plugin-devices(de lilla) som er opprettet basert på en allerede eksisterende VD. Om dette nå skulle virke så må jeg legge inn $$LABEL

i "MQTT Publish Payload Template" slik at label-verdien fra VD legges i payload ved publisering (og ikke minst trigger), men med publisering må payload legges tilbake i $$STATUS. Nederste del av MQTT-oppsettet tyder på at det muligens kan være mulig, men jeg behersker ikke "disse feltene" enda.

image.thumb.png.43bcff74aa0aa576159235ee8f7d47b7.png

 

Mistenker dog at det er gjort endringer i mcsMQTT-module som utilsiktet har tullet til noe. Jeg brukte en god del tid rundt årsskiftet for å få utvikleren til å fikse status-delen for non-plugins til å fungere på en hensiktsmessig måte, og etter det så var det bra i noen måneder. 

 

 

Lenke til kommentar
Del på andre sider

Løsningen er at det er en bug i HS hvor det var et tilfelle hvor mcsMQTT hadde en blindsone, og ikke hadde implementert en workaround. Det som mangler var oppdatering av devicen´ ved endring av en en subscribed string.

 

Ellers hadde jeg også feilaktig benyttet $$STATUS: istedet for $$LABEL: på publish for non-plugin-devices, men dette fungerte jo av en eller annen grunn ganske lenge likevel. Da jeg fikk rettet til $LABEL: fungerte det likvel ikke pga bug´en, men nå skal alt være rosenrødt!

  • Like 1
Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.