B Bo Berglund skrev:
Jag har fått hem de beställda regulatorerna under tiden men nu skall jag iväg igen så det blir testat senare.

Jag har också insett att en simpel RC-koppling på RESET nog är en dålig idé med tanke på strömförsörjningens problem, det borde vara något som håller ESP i reset tills allt stabiliserats och först då släpper loss systemet. Kanske ett par sekunder eller så..
Jag har nu fixat min läsare så den fungerar OK.
Gjorde följande:
Hårdvara
  • Bytte RJ-12-kabeln mot en ny med "rätt" längd och bättre kontakt. Den existerande hade problem att klicka fast i mätaren.
  • Bytte ut de två dioderna som droppar från 5V till 3.6V som supply mot en dedicerad regulator TLV1117-33IDCY. Detta ger renare 3V3 spänning.

Firmware
  • Lade till delay(2000) överst i setup() för att säkerställa att spänningen är stabil när ESP8266 börjar jobba
  • Lade till delay(1) överst i loop() för att sänka strömförbrukningen (från 80 till 30 mA). Tidigare tillbringade koden mest tid i diverse servercheckar mot WiFi, vilket drar ström. Nu blir det mycket färre sådana eftersom den får en delay(1) varje varv.

Nu är den igång som det var tänkt och jag får mina data igen.
😀
 
  • Gilla
blackarrow och 3 till
  • Laddar…
B Bo Berglund skrev:
Nu är den igång som det var tänkt och jag får mina data igen.
Grattis! 😊
 
Jag skrev för fort...
Nu i kväll har den satt igång och resettar sig med några minuters mellanrum och sen går den ett tag och resettar igen. ????? 🤬
Ingen bestämd tid mellan starterna.

Det finns två anrop i koden till ESP.restart(); och den ena finns vid startup när den inte får tag på WiFi-routern. Då låter jag den vänta 1 sekund och sen starta om. Detta för att ifall jag får strömavbrott så startar ESP-modulen snabbare än routern när strömmen är tillbaka så den lyckas inte koppla upp.

Den andra har jag i loop() för att starta om efter 26 dygn.
Denna har jag tagit bort nu så nu finns där bara det anrop som görs vid startup().
Få se nu ifall den beter sig i natt...
 
B Bo Berglund skrev:
Exakt, så man kan inte köra RPi direkt fån mätaren...
Det är ju ALDRIG någon som påstått det. Om du inte vet hur dessa USB-kablar fungerar så låt bli att spekulera! Det hjälper ingen.

Tvärtom är fördelen att de går att använda till alla mätare, även de som måste förses med spänning för att fungera, då de tar spänning från hostdatorns USB-port.

/M
 
B Bo Berglund skrev:
Jag skrev för fort...
Nu i kväll har den satt igång och resettar sig med några minuters mellanrum och sen går den ett tag och resettar igen. ????? 🤬
Ingen bestämd tid mellan starterna.

Det finns två anrop i koden till ESP.restart(); och den ena finns vid startup när den inte får tag på WiFi-routern. Då låter jag den vänta 1 sekund och sen starta om. Detta för att ifall jag får strömavbrott så startar ESP-modulen snabbare än routern när strömmen är tillbaka så den lyckas inte koppla upp.

Den andra har jag i loop() för att starta om efter 26 dygn.
Denna har jag tagit bort nu så nu finns där bara det anrop som görs vid startup().
Få se nu ifall den beter sig i natt...
För att komplettera redogörelsen:
Det ville inte heller funka utan jag fick omstarter speciellt under natten och idag alldeles för många.Ungefär en omstart varannan minut...

Så jag har gjort följande:
1) Jag införde kod för att mäta Vcc-spänningen regelbundet och skicka med MQTT.
Detta visade att det inte handlar om något spänningsproblem. Vcc ligger stabilt på 3.45V med väldigt små variationer. Mätning varje minut och direkt vid omstart.

2) Jag införde en mätning av WiFi-styrkan oftare än tidigare för att se variationerna.
Här såg jag att nivån var rätt låg även om jag fixade med antennen vid elmätaren (-85 till -89 dBm). Problematiskt.

3) Så jag bestämde mig för att modifiera WiFi-systemet genom att dra en längre kabel till WiFi-accesspunkten inomhus men närmast elmätaren och sätta den i fönstret mot gatan.
Nu fick jag upp nivån till mellan -80 och -73 dBm, och efter det har jag inte sett några omstarter.

Så troligen beror omstarterna på att den tappat kontakten med WiFi...
Har varit igång ett par timmar nu. Få se över natten hur det går.
 
  • Gilla
Egil Opsahl
  • Laddar…
Äntligen....fick även jag tag på en ny elmätere.
Det blir bra att kunna se belastningen/spänningen på faserna, men även få in totalmätningen enkelt i smarta-hemmet.
Blev ju sugen på microproduktion, bara för att nyttja fyrkvadrantfunktionen i mätaren 😊
Men lite tjorvigt att det verkar vara skillnad på hur datat läses ut beroende på vilken leverantör av mätare man har, knepig standard?
Nåja, jag har en rolig höst framför mig känns det som.

Infograf om realtids energiutbyte med förnybar energi, elkraftverk, och hushåll med elfordon. Zero export och produktion.
Inloggade ser högupplösta bilder
Skapa konto
Gratis och tar endast 30 sekunder


Grafisk visning av strömflöde genom tre faser; olika ampere och spänning för varje fas.
Inloggade ser högupplösta bilder
Skapa konto
Gratis och tar endast 30 sekunder
 
  • Gilla
paralun och 1 till
  • Laddar…
B Bo Berglund skrev:
För att komplettera redogörelsen:
Det ville inte heller funka utan jag fick omstarter speciellt under natten och idag alldeles för många.Ungefär en omstart varannan minut...

Så jag har gjort följande:
1) Jag införde kod för att mäta Vcc-spänningen regelbundet och skicka med MQTT.
Detta visade att det inte handlar om något spänningsproblem. Vcc ligger stabilt på 3.45V med väldigt små variationer. Mätning varje minut och direkt vid omstart.

2) Jag införde en mätning av WiFi-styrkan oftare än tidigare för att se variationerna.
Här såg jag att nivån var rätt låg även om jag fixade med antennen vid elmätaren (-85 till -89 dBm). Problematiskt.

3) Så jag bestämde mig för att modifiera WiFi-systemet genom att dra en längre kabel till WiFi-accesspunkten inomhus men närmast elmätaren och sätta den i fönstret mot gatan.
Nu fick jag upp nivån till mellan -80 och -73 dBm, och efter det har jag inte sett några omstarter.

Så troligen beror omstarterna på att den tappat kontakten med WiFi...
Har varit igång ett par timmar nu. Få se över natten hur det går.
Ett tips är att komplettera koden med att vid uppstart läsa anledningen till omstart och skicka denna uppgift i ett persistent mqtt-meddelande så fort det går att skicka. Då har man alltid tillgång till anledningen till senaste uppstart.

Jag lägger mina pengar på att det är watchdog som rebootar och troligtvis i samband med mqtt reconnect. Mqtt i esp8266 är jättedålig på att hantera WiFi-bortfall. Vilket stödjs av indikationen att det sker vid dålig WiFi-kontakt.
 
Hur gör man om man vill ansluta flera olika smarta enheter till porten?
Finns det någon vettig splitter för detta? Och behöver den isf vara aktiv, dvs ha egen strömförsörjning?
Hur gör folk?
 
P Putteman skrev:
Hur gör man om man vill ansluta flera olika smarta enheter till porten?
Finns det någon vettig splitter för detta? Och behöver den isf vara aktiv, dvs ha egen strömförsörjning?
Hur gör folk?
Så här gör jag:
https://www.homewizard.com/sv/butik/aktiv-p1-grenare/

Vit nätverksswitch med fem portar på vit bakgrund. Märkt med blixtsymbol och text "PWR".
Inloggade ser högupplösta bilder
Skapa konto
Gratis och tar endast 30 sekunder
 
  • Gilla
Putteman
  • Laddar…
P Putteman skrev:
Hur gör man om man vill ansluta flera olika smarta enheter till porten?
Finns det någon vettig splitter för detta? Och behöver den isf vara aktiv, dvs ha egen strömförsörjning?
Hur gör folk?
Vet inte hur "folk" gör, men jag har pulat med detta i snart ett år nu på två installationer och med samma mjukvara för ESP8266-modulen tagen från GitHub på båda. Fast jag har ju kompletterat/modifierat koden...

Nu har jag insett att man skall placera så lite som möjligt på den adapter som kopplas till mätaren!

Jag tänker nu programmera om båda enheterna så att de bara gör absolut minimum av jobb:

- Starta upp och koppla in WiFi samt skicka ett startmeddelande till MQTT-brokern.
Därefter:
- Läs HAN-meddelande från porten och skicka som det är via MQTT till en broker.
- Vänta sedan in nästa meddelande (alternativt sov i 60 s och vänta sedan på meddelande).

Allt annat som befintlig kod gör nu får sedan utföras av en MQTT-klient på servern eller nån annan stans.

Då kan man preparera data precis som man vill med en applikation som körs på tex en linux-server och skickar det man vill till en databas.
 
it-snubben it-snubben skrev:
Ett tips är att komplettera koden med att vid uppstart läsa anledningen till omstart och skicka denna uppgift i ett persistent mqtt-meddelande så fort det går att skicka. Då har man alltid tillgång till anledningen till senaste uppstart.
Hur får man reda på orsaken till att den startade om?
Så man kan skicka det som MQTT.

Efter reset så är väl all sådan information raderad?
 
B Bo Berglund skrev:
Hur får man reda på orsaken till att den startade om?
Så man kan skicka det som MQTT.

Efter reset så är väl all sådan information raderad?
Det var ett tag sedan jag gjorde något som behövde veta omstartsanledning men sök efter getResetReason() och prova om du får något användbart.
 
B Bo Berglund skrev:
Hur får man reda på orsaken till att den startade om?
Så man kan skicka det som MQTT.

Efter reset så är väl all sådan information raderad?
Med mindre du svært gjerne vil bygge koden selv, så har vi et godt alternativ:

Om du har laget din egen hardware med ESP8266 eller ESP32 kan du benytte vår firmware - som er åpent tilgjengelig. Du kan bygge/kompilere kildekoden selv, eller benytte ferdigbygget binærkode for ESP8266 og de fleste varianter ESP32.

https://github.com/UtilitechAS/amsreader-firmware
https://github.com/UtilitechAS/amsreader-firmware/releases

Reboot reason vil du da finne på Info-siden:
AMS reader gränssnitt med enhetsinformation, elmätardata och nätverksinställningar. Innehåller knappar och versionsnummer.
 
B Bo Berglund skrev:
Nu har jag insett att man skall placera så lite som möjligt på den adapter som kopplas till mätaren!
Det är sant att det finns problem med att ladda på med funktionaliteter i en esp8266 men den är mer kompetent än vad man kan tro. Bara man hanterar dess brister och förstår vad som orsakar problemen.

Det, i mitt tycke, det vanligaste misstaget är att göra massa onödiga beräkningar, sammanställningar och leveranser i varje loop. Man vill bearbeta direkt när data finns att beräkna på istället för att göra det när tid finns. Man lastar den med arbete hundratusentals gånger per sekund.

Det finns en watchdog som resetar ESPn om den inte föds inom en viss tid, vilket sker vid varje loop slut (och när man använder delay() ). Om loop tar för lång tid startar esp om.

Det betyder dock inte att ESP inte hinner med tyngre jobb. Tvärtom, om man sprider ut arbetet i tid så hinner den med mycket och om man gör upprepade onödiga matematiska beräkningar (dvs som ger samma resultat varje gång) en enda gång och sparar resultatet så slösar man inte tid.

Eventuell (teoretisk) lösning, är att göra olika sammanställningar/beräkningar i olika separata varv i loop. Det hinner ofta gå många varv i loop innan nästa data kommer in. Varv 1 gör man en beräkning, varv 2 en annan osv...
 
  • Gilla
Egil Opsahl
  • Laddar…
Hannuse Hannuse skrev:
Så här gör jag:
[länk]

[bild]
Fy f-n vad dyr den var. Då plockar jag hellre ihop den själv av delar.
 
Vi vill skicka notiser för ämnen du bevakar och händelser som berör dig.