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

Shelly's MQTT spesialiteter og triks.


SveinHa

Spørsmål

Fikk nettopp en Shelly EM i hus og brukte en del tid på å skjønne energidata. Etter litt jobbing fant jeg ut at topic "energy" oppdateres hvert minutt og inneholder Wh/60 for siste minutt. For å få en brukende kWh teller i NodeRed måtte jeg da til med en funksjonsblokk:

image.png.db203e9ed3d6b301f996f89010a67b74.png

Innholdet i funksjonsblokken:

Sitat
var kWh = context.get("kWh") || 0
var svar = "";
kWh += msg.payload/(60*1000)
;
context.set("kWh",kWh);
svar = {payload:kWh};
return svar;
[{"id":"fa6012a6bf6a722f","type":"mqtt in","z":"06d71aaf3c5ec68d","name":"Shelly Solar PwrOut","topic":"shellies/Solar/emeter/1/energy","qos":"2","datatype":"json","broker":"6db118ed1b0c56de","nl":false,"rap":true,"rh":0,"inputs":0,"x":110,"y":780,"wires":[["62ce77a1861f5e97"]]},{"id":"62ce77a1861f5e97","type":"function","z":"06d71aaf3c5ec68d","name":"Calc kWh (Shelly)","func":"var kWh = context.get(\"kWh\") || 0\nvar svar = \"\";\nkWh += msg.payload/(60*1000);\ncontext.set(\"kWh\",kWh);\n\nsvar = {payload:kWh};\nreturn svar;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":780,"wires":[["566f60d36445a0df"]]},{"id":"566f60d36445a0df","type":"show-value","z":"06d71aaf3c5ec68d","name":"","path":"","x":500,"y":780,"wires":[["3b27c97bafa0701c"]]},{"id":"6db118ed1b0c56de","type":"mqtt-broker","name":"DaleMQTT","broker":"172.16.0.94","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"5","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]

Ser ut til å funke helt fint.

 

Tenker andre slike særheter kan dokumenteren i denne tråden.

 

Edit: Ser ut til at jeg ble litt lurt av noe jeg leste på nett... Har nå sammenlignet med en annen måler og det ser ut til at minuttverdien skal deles på 60 for å få Wh. Har rettet i eksempelet over...

Endret av SveinHa
Lenke til kommentar
Del på andre sider

2 svar til spørsmålet

Anbefalte innlegg

  • 0

Lyspære Shelly Vintage A60

For styring av lys kreves 2 MQTT topic:

  • For styring av/på med payload "on" eller "off": shellies/<enhedsID>/light/0/command
  •  For setting av lysnivå og dimmetid med payload {"brightness":100,"transition":5000}: shellies/<enhedsID>/light/0/set

Synes det er litt merkelig at styringen deles opp i 2 topic (og jeg fant ikke noe om det på Shelly sine nettsider) men en får bare forholde seg til at slik er det. Normalen er jo kun et ".../set" topic...

 

Edit: Fant en alternativ løsning på on/off:

Payload {"turn":"on","brightness":100,"transition":5000} kan sendes til topic .../set Ved å sende alle kommandoer samtidig feiler transition i enkelte tilfeller.

Alternativt bare {"turn":"on"} eller {"turn":"off"} til topic .../set

Endret av SveinHa
Lenke til kommentar
Del på andre sider

  • 0
SveinHa skrev (På 26.5.2023 den 14.26):

Fikk nettopp en Shelly EM i hus og brukte en del tid på å skjønne energidata. Etter litt jobbing fant jeg ut at topic "energy" oppdateres hvert minutt og inneholder Wh * 100 for siste minutt. For å få en brukende kWh teller i NodeRed måtte jeg da til med en funksjonsblokk:

image.png.db203e9ed3d6b301f996f89010a67b74.png

Innholdet i funksjonsblokken:

[{"id":"fa6012a6bf6a722f","type":"mqtt in","z":"06d71aaf3c5ec68d","name":"Shelly Solar PwrOut","topic":"shellies/Solar/emeter/1/energy","qos":"2","datatype":"json","broker":"6db118ed1b0c56de","nl":false,"rap":true,"rh":0,"inputs":0,"x":110,"y":780,"wires":[["62ce77a1861f5e97"]]},{"id":"62ce77a1861f5e97","type":"function","z":"06d71aaf3c5ec68d","name":"Calc kWh (Shelly)","func":"var kWh = context.get(\"kWh\") || 0\nvar svar = \"\";\nkWh += msg.payload/100000;\ncontext.set(\"kWh\",kWh);\n\nsvar = {payload:kWh};\nreturn svar;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":780,"wires":[["566f60d36445a0df"]]},{"id":"566f60d36445a0df","type":"show-value","z":"06d71aaf3c5ec68d","name":"","path":"","x":500,"y":780,"wires":[["3b27c97bafa0701c"]]},{"id":"6db118ed1b0c56de","type":"mqtt-broker","name":"DaleMQTT","broker":"172.16.0.94","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"5","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]

Ser ut til å funke helt fint.

 

Tenker andre slike særheter kan dokumenteren i denne tråden.

Jeg har flere Shelly enheter i huset og har en utfordring med at Home Assistant ikke viser Shelly 3EM PRO total power. Det fremkommer hver fase, spenning og forbruk per fase, men ikke fasene sammenlagt. Noe forslag etter som jeg er ny på Home Assistant. Disse funksjonene fungerer utmerket på Shelly smartcontroll både på PC og mobiltelefon.

image.png.aaa0dde3eedcfaa9f031c5f8b4dac10b.png

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
Svar på spørsmålet...

×   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.