Tips: IKEA SPARSNÄS Energidisplay

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
ToPNoTCH
Inlägg: 4847
Blev medlem: 21 december 2009, 17:59:48

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av ToPNoTCH »

Ficklampa som "simulator" för detta är nog inget bra alls.
Zkronk
Inlägg: 1423
Blev medlem: 23 augusti 2005, 16:44:36
Ort: Uppsala

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av Zkronk »

Nä, det förstår jag men det var det jag hade närmast till hands just då.
Och det att Sparsnäs-displayen visade rimliga siffror gjorde att jag inte ordnade någon bättre lösning.

Men jag ska göra ett nytt test med en pwm-styrd lysdiod när jag får tid igen.

EDIT: Jag kunde inte låta bli att testa lite mer i kväll, och med funktionsgeneratorn och en lysdiod så fungerar det perfekt nu. Ficklampssimuleringen var med andra ord boven i dramat. :lol:
2 Hz och 20 % pulsbredd ger mig 7200 W vid 1000 imp/kWh nu ganska konstant, skiljer ett 10-tal W ibland bara.
Magnus Thomé
Inlägg: 4
Blev medlem: 13 februari 2017, 19:46:32

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av Magnus Thomé »

För mig I vissa situationer när IR-ögat såg ljus från visa vanliga belysnings-LED-lampor så uppfattades det ljuset som massor av pulser.
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av PHermansson »

Gott att höra Zkronk, lät som en knepig bugg annars :)
Zkronk
Inlägg: 1423
Blev medlem: 23 augusti 2005, 16:44:36
Ort: Uppsala

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av Zkronk »

Nu har jag stött på patrull igen...
Efter ett tiotal paket så slutar rapporteringen till MQTT-brokern. Ibland redan efter 3-4 paket, finner inget riktigt mönster.
Jag har verifierat via serieterminalen att ESP'n är vid liv och gör sitt jobb, men den verkar tappa anslutningen till Mosquitto.
Nätverksanslutningen är det inga problem med så vitt jag kan se, den svarar på ping i alla fall.

Utdrag från Mosquitto-loggen:

Kod: Markera allt

1517427596: New connection from 192.168.0.82 on port 1883.
1517427596: New client connected from 192.168.0.82 as EspSparsnasGateway (c1, k15, u'sparsnas').
1517427651: Client EspSparsnasGateway has exceeded timeout, disconnecting.
1517427651: Socket error on client EspSparsnasGateway, disconnecting.
1517427990: New connection from 192.168.0.82 on port 1883.
1517427990: New client connected from 192.168.0.82 as EspSparsnasGateway (c1, k15, u'sparsnas').
1517428086: Client EspSparsnasGateway has exceeded timeout, disconnecting.
1517428086: Socket error on client EspSparsnasGateway, disconnecting.
EDIT: Efter lite mer funderande så ser jag att k15 betyder att keepalive-värdet är 15 sekunder (det är default-värdet för PubSubClient-biblioteket), och Sparsnäs skickar ju ut paket var 15:e sekund, och blir det någon miss och inget meddelande skickas exakt var 15:e sekund (okej, brokern lägger nog till lite marginal tror jag, med inte tillräckligt för att täcka upp 1 eller 2 bortfall) så blir klienten bortkopplad. Jag ska ta och testa att ändra på det och se om det är det som är problemet :)
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av PHermansson »

Tror jag har liknande problem fast det händer efter nått dygn. Svårt att undersöka. Jag har för mig brokern är ställd på 10s och att de 5s upp till 15 är marginalen. Sen verkar det lite krångligt att ändra dessa värden.
Zkronk
Inlägg: 1423
Blev medlem: 23 augusti 2005, 16:44:36
Ort: Uppsala

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av Zkronk »

Jag har provat att ändra MQTT_KEEPALIVE från 15 till 60 i PubSubClient.h nu, och så här långt (10 minuters test) har den inte tappat anslutningen någon gång.
Ska fortsätta köra och se om den håller sig stabil.

Är det av någon anledning förresten att den totala förbrukningen (kWh) trunkeras till ett heltal? När jag testade med rtl_sdr-varianten så fanns det ett gäng decimaler även på totalen...
Användarvisningsbild
swapper
Inlägg: 1075
Blev medlem: 14 augusti 2012, 23:18:15
Ort: Helsingborg

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av swapper »

Det gällande decimalerna på kwh vore intressant att lösa, blir rätt rejäla steg i graferna.

Någon annan som har problem med att ESPn wdt ar ?
Har testat att byta biblioteket som används till detta vilket jag förstår skall lösa liknande problem:
https://github.com/rrobinet/RFM69X_Library

Alternativt att min wdt ar för att jag gjorde ändring i hur den postar värdena till MQTT då jag fick 0 värden.
https://github.com/bphermansson/EspSpar ... y/issues/4

Kod: Markera allt

Exception (0):
epc1=0x40203b78 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

ctx: sys 
sp: 3ffffc30 end: 3fffffb0 offset: 01a0

>>>stack>>>
3ffffdd0:  40107150 80be5999 40105192 000000fa  
3ffffde0:  ffffffff 00000020 40240000 fffffe1a  
3ffffdf0:  00000006 00000006 42da0000 00000022  
3ffffe00:  3fffc200 40107118 3fffc258 4000050c  
3ffffe10:  4000437d 00000030 00000016 ffffffff  
3ffffe20:  60000200 00000008 070f0000 80000000  
3ffffe30:  20000000 3fff15e8 80000000 203fc0e0  
3ffffe40:  80000000 3fffc6fc 3ffee3a8 3fff15ec  
3ffffe50:  00000214 003fc0e0 60000600 00000030  
3ffffe60:  7fffffff 3ffe9a50 3ffe9a50 00000001  
3ffffe70:  40211c89 3ffee828 00000000 00000000  
3ffffe80:  40105b9c 219888d1 3fff0a14 00000000  
3ffffe90:  00000000 00000000 0000001f 40105a59  
3ffffea0:  4000050c 217bec99 4021626b 3fff0a14  
3ffffeb0:  40000f68 00000030 0000001a ffffffff  
3ffffec0:  40000f58 00000000 00000020 00000000  
3ffffed0:  00000011 4020de0c 3ffee3a8 00000001  
3ffffee0:  ffffffff 3ffe9004 3ffee3a8 3fffdab0  
3ffffef0:  00000000 3fffdcb0 3ffee3e0 00000030  
3fffff00:  00000000 400042db 00000064 60000600  
3fffff10:  40004b31 3fff150c 000002f4 003fc000  
3fffff20:  40105fbe 3ffee3d0 3ffed470 40107350  
3fffff30:  4020d8dd 3ffed470 3ffee3d0 6b2808fa  
3fffff40:  3fff150c 00001000 4020dd72 00000008  
3fffff50:  4020a708 3ffe9004 4020de1f 3ffed524  
3fffff60:  3ffee3d0 217c5fa2 3ffee3d0 60000600  
3fffff70:  4021f4ed 3ffed524 3ffee3d0 6b27c897  
3fffff80:  4021f532 3fffdab0 00000000 3fffdcb0  
3fffff90:  3ffee3e8 00000000 40000f65 3fffdab0  
3fffffa0:  40000f49 0001811d 3fffdab0 40000f49  
<<<stack<<<

 ets Jan  8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x4010f000, len 1384, room 16 
tail 8
chksum 0x2d
csum 0x2d
v3de0c112
~ld
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av PHermansson »

Hmm min kod använder inget lib?

Wdt Kan du få om koden "låser" för mycket. Du får tex inte ha längre delayer med en esp, då kan den inte göra det den måste göra i bakgrunden.
Användarvisningsbild
swapper
Inlägg: 1075
Blev medlem: 14 augusti 2012, 23:18:15
Ort: Helsingborg

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av swapper »

Ok jag kanske använder fel begrepp men det följer med RFM69registers.h och refereras på rad 35 i #include <RFM69registers.h>
Det var denna vilket jag menade var library (levereras normalt som ett "externt" library om man laddar ner det ifrån lowpowerlabs)
Har inte ändrat något annat än det jag nämnde i förra posten i din kod.

yield() kan man använda på ESP plattformen för att släppa kontrollen till underliggande processer så de kan hantera vad de behöver.
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av PHermansson »

Ok då är jag med :)

Ja precis, och yield skulle kanske behövas?
Reset cause 4 är wdt reset.

http://www.esp8266.com/viewtopic.php?p=2096#p2112
Användarvisningsbild
carpelux
Inlägg: 1866
Blev medlem: 13 oktober 2007, 12:33:33
Ort: Varnhem

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av carpelux »

Ni får ursäkta om det hoppar lite fram och tillbaka när det gäller ämnet i denna tråd, men jag tänkte återkoppla lite om de problem jag hade med att ta emot värdena från min sparsnäs.

Det är så att trots att jag beställde både 433 och 868-moduler av både cw och hw varianterna i början av december har jag fått hem allt utom 868cw. Det skall ju inte vara någon skillnad vad det gäller rx mode mellan dem så jag trodde det inte skulle spela någon roll att jag körde på hw istället för cw (som alla andra verkar använda).

Tyvärr fungerade det inte. I de första varianterna på github var det ju en esp12-modul som användes och jag körde med Wemos D1 mini vilket gör att jag fick 2 olika potentiella felkällor. Mycket tid lades på att verifiera vilka pinnar jag skulle köra på, och att det inte fanns potentiella krockar i användandet av pinnarna på wemosen kontra en ren esp12 modul. Det visade sig dock att det inte var några problem att använda wemos D1 istf esp2.

Jag kunde se att jag tog emot RF-data när jag slog på debugmode, en massa träffar blev det. Långt mycket mer än var 15:e sekund som sparsnäs sänder ut men jag kopplade det till mina zwave-prylar.

Jag labbade fram och tillbaka med parametrar och frekvenser, lade till en del extra debugkod för att printa crc samt innehåll i de mottagna paketen och fann att det inte fanns något vettigt mönster i det jag tog emot. Varenda crc var fel och datat helt slumpmässigt.

Jag började då misstänka att det var strul med SPI-kommunikationen. Frekvenser ändrades både på SPI-klockan och CPU-klockan till wemosen, Jag kunde dock konstatera genom att koppla in en logikanalysator att det jag skrev till konfigurationsregistren och den data jag läste ut överensstämde med de värden som skulla skrivas och det jag såg på mina debugutskrifter. Så det var inget fel på SPI-kommunikationen.

Härnäst började jag fundera på bitrate och frekvensdviation. Strigeus har lite annorlunda värden i sin orginalkod än den kod PHermansson har publicerat så jag testade fram och tillbaka med dessa värden. Tyvärr utan framgång.

Nu var det dags att börja med lite strukturerad felsökning. Jag körde igång min sdr-mottagare och sdr# och kunde ganska snart konstatera att det inte fanns speciellt mycket trafik i luften runt 868MHz. Ändå fick jag en massa interrupts då DIO0 på min RFM868HW indikerade payloadready. Hur kunde det komma sig? Var det brus som gav falska träffar?

Jag drog ner RSSITHRESHOLD jättelågt, ändå tog jag emot i princip lika mycket trafik. Det var något som inte stämde...

Nu vidtog en grundligt genomläsning an databladet för RFM69. Jag hittade då att det finns en skillnad på RX mode mellan CW och HW. HW har en timer som ger en interrupt om inte payloadready har inträffat på en viss tid.
RegRxTimeout2 (0x2B) interrupt is generated TimeoutRssiThresh *16*T bit after Rssi interrupt if PayloadReady interrupt doesn’t occur.
Det måste vara det som orsakar alla dessa falska värden jag tar emot.

Jag lade till följande i koden för att vara säker på att det var avstängt:

Kod: Markera allt

    /* 0x2B */ {REG_RXTIMEOUT2, (uint8_t)0x00},                  
 
Nu blev det bättre, antalet interrupts för payloadready minskade dramatiskt men inte helt till den nivå som motsvarade de aktuella sändningarna jag kunde se i sdr#.

Jag drog då ner RSSITRESHOLD

Kod: Markera allt

uint8_t RSSITHRESHOLD = 190; // must be set to dBm = (-Sensitivity / 2), default is 0xE4 = 228 so -114dBm
...och då försvann i princip alla falska triggers. Dock hade jag fortfarande inga riktiga värden utan det var crc-fel hela tiden.

Jag kunde se i sdr# att frekvensen inte riktigt var 868MHz, otan snarare 867,980MHz. Så jag lade in

Kod: Markera allt

uint32_t FREQUENCY = 867980000;
Voila, nu funkade det perfekt!

Det var min resa, det är ju inte säkert att det stämmer om någon annan har problem med att få sin RFM69HW att funka, men det kanske kan vara en hjälp på vägen. Den viktigaste ändringen är nog att lägga in denn rad.

Kod: Markera allt

    /* 0x2B */ {REG_RXTIMEOUT2, (uint8_t)0x00},                  
 
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av PHermansson »

swapper skrev:Det gällande decimalerna på kwh vore intressant att lösa, blir rätt rejäla steg i graferna.
Tittade på koden nu och funderar på vad värdet total eg innebär? Total number of pulses skriver Strigeus. Sedan när? Hur är det relevant?
Siffran jag får via Mqtt kan jag inte hitta på displayen. Så jag undrar om detta eg bara är ett Kontrollvägen?
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av PHermansson »

Intressant carpelux! Får ordna nån notering om hw-varianten. Och fundera på frekvensproblemet, Strigeus har ju en funktion för att hitta avvikelsen.
Zkronk
Inlägg: 1423
Blev medlem: 23 augusti 2005, 16:44:36
Ort: Uppsala

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av Zkronk »

27 timmar utan att tappa anslutningen till MQTT-brokern hittills! :)
Angående kWh-visningen så kollade jag på koden nu och det är ju totala antalet pulser från att sändaren startades divideras med antalet impulser/kWh.

I och med att det är en int och en #define med ett heltal så blir ju svaret också ett heltal. Borde fungera att köra med type casting till float för att få ett decimalvärde där.
Skriv svar