Stromnetz-Frequenz-Messung mit ESP8266

Begonnen von JoWiemann, 16 Juni 2021, 15:23:51

Vorheriges Thema - Nächstes Thema

Nobbynews


Nobbynews


my-engel


PeMue

#198
6/10, Platinen sind (glaube ich) am Freitag schon gekommen, Geld ist aber gerade erst raus.

Vielen Dank.

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

cetri

7/10 Besten Dank.

Geld sollte bei dir sein.

LG
Cetri

justme1968

meins ist auch da. also 8/10. danke noch mal.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

dmq

Auch bei mir angekommen.

09/10

Lieben Dank!

dmq

Papa Romeo

ok ... dann war´s das erst mal. Danke für die Rückmeldungen und die zugegangenen Beträge.

10/10 ging erst am Samstag in die Post, da ich die Adresse vorher nicht hatte.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

herrmannj

#203
Zitat von: Nobbynews am 31 Juli 2021, 10:22:35
Supi, Danke.

Norbert
Ups, langes WE! Sorry für delay, im Anhang

Beide Dateien in das gleiche Verzeichnis. Abhängigkeiten erfüllen. U.a.:
# sudo apt-get install wiringpi
# sudo cpanm RPi::Pin

+ Net::MQTT::Simple;

Gestartet wird grid-mqtt2.pl
Da kannst Du auch broker und topic(s) anpassen.

Entweder in 'screen' detached laufen lassen oder die Luxusvariante: systemd erstellen

vg
Joerg

Nobbynews

Zitat von: herrmannj am 03 August 2021, 21:14:54
Ups, langes WE! Sorry für delay, im Anhang
Kein Problem, ich bin sowieso noch nicht um Löten gekommen.
Ich melde micht.

Norbert

Nobbynews

#205
Hallo zusammen,

so, ich habe mal den Lötkolben angeschmissen und es funktioniert.
Danke Papa Romeo und herrmannj.

Jetzt kämpfe ich noch mit der Datenflut und vermutlich mit dem Pi-Zero.
Es kommen immer wieder in mehr oder minder regelmäßigen Abständen Ausreißer, die ich auf andere Prozesse auf dem Pi-Zero schiebe.
Hier ein Beispiel:
2021-08-04 17:21:58 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.984
2021-08-04 17:21:59 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.984
2021-08-04 17:22:00 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 50.487
2021-08-04 17:22:01 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.989
2021-08-04 17:22:02 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.981
2021-08-04 17:22:03 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.985
2021-08-04 17:22:04 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.985
2021-08-04 17:22:05 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.984
2021-08-04 17:22:06 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.987
2021-08-04 17:22:07 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.989
2021-08-04 17:22:08 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.983
2021-08-04 17:22:09 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.986
2021-08-04 17:22:10 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 51.000
2021-08-04 17:22:11 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 50.500
2021-08-04 17:22:12 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.984
2021-08-04 17:22:13 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.988
2021-08-04 17:22:14 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.990
2021-08-04 17:22:15 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.992
2021-08-04 17:22:16 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.992
2021-08-04 17:22:17 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz: 49.990

Um das zu reduzieren, habe ich über ein Userreading ein movingAverage draufgepackt mit folgendem Ergebnis;
2021-08-04 17:21:58 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.992
2021-08-04 17:21:59 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.992
2021-08-04 17:22:00 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.993
2021-08-04 17:22:01 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.992
2021-08-04 17:22:02 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.992
2021-08-04 17:22:03 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.992
2021-08-04 17:22:04 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.992
2021-08-04 17:22:05 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.992
2021-08-04 17:22:06 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.992
2021-08-04 17:22:07 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.992
2021-08-04 17:22:08 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.992
2021-08-04 17:22:09 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.992
2021-08-04 17:22:10 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.994
2021-08-04 17:22:11 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.994
2021-08-04 17:22:12 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.992
2021-08-04 17:22:13 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.99
2021-08-04 17:22:14 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.99
2021-08-04 17:22:15 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.99
2021-08-04 17:22:16 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.99
2021-08-04 17:22:17 MQTT2_DEVICE MQTT_Nulldurchgang Netzfrequenz2: 49.99

Den Wert habe ich mal über das Modul NEtzfrequenz verglichen und daher in der def einen Korrekturfaktor eingefügt:
userReadings Netzfrequenz2:Netzfrequenz:.* {movingAverage("MQTT_Nulldurchgang","Netzfrequenz",10)-0.05}
Damit ist natürlich die "absolute Genauigkeit" hin, aber eine Tendenz dürfte sich trotzdem zeigen.
Ein Plot dazu habe ich mal angehängt. Die Sprünge kommen durch Variation des Korrekturfaktors.

Norbert

herrmannj

#206
Interessant!

Theorie: normalerweise würde man zur Zeitmessung die msec Timer verwenden. Die haben aber einen Nachteil, die werden von verschiedenen Mechanismen, u.A. ntp, beeinflusst. NTP führt ständige (kleinere) Korrekturen an der Systemzeit durch, Messungen die darauf beruhen zeigen dann solche Effekte.

Daher verwende ich einen besonderen Timer, clock_monotonic. Der läuft ohne derartige Korrekturen ab Systemstart mit einer garantierten Genauigkeit von einigen ppm / Jahr und liefert damit ein vielfaches der benötigten Genauigkeit.

Den gibt es aber nicht immer (der Raspi3b hat ihn). Wenn das System das nicht hat wird auf die Systemzeit zurückgegriffen. Hypothese: der Zero hat diesen Timer nicht. Das würde genau die positiven Sprünge erklären. Das ist auch die einzige Erklärung die mir einfällt denn Last würde imho einen gegenteiligen Effekt verursachen. Der Zero ist dann leider nicht wirklich geeignet ..

https://stackoverflow.com/questions/3523442/difference-between-clock-realtime-and-clock-monotonic

edit
ob diese Hypothese dann zutrifft kann ich nicht sagen, aber auf dem 3b sehe ich solche Effekte nicht

Edit2
Ich publishe ja noch auf hivemq. Wenn du möchtest, dann kannst du dir das parallel mit anzeigen lassen. Wird eine kleine Latenz geben, die rausgedacht siehst du dann den raspi3b "daneben". Wäre interessant!

Nobbynews

Zitat von: herrmannj am 04 August 2021, 18:03:00
Den gibt es aber nicht immer (der Raspi3b hat ihn).
https://stackoverflow.com/questions/3523442/difference-between-clock-realtime-and-clock-monotonic
Das werde ich in den nächsten Tagen mal mit einem 2B und einem 3B probieren.
Aus Deinem Link habe ich auf dem Zero mal ausgeführt:
perl -w -MTime::HiRes=clock_gettime,CLOCK_MONOTONIC -E 'say clock_gettime(CLOCK_MONOTONIC)'
Das Ergebnis ist 16001659.0326101

Dann müsste die Option doch eigentlich existieren?

herrmannj

ich hatte oben noch ein edit2: Du kannst auf die Schnelle meinen pi3b "dagegen" halten. Ich publishe noch auf hivemq. mqtt2-client und -device sind ja schnell eingerichtet.

Nobbynews

Ich habe da gerade ein Brett vor dem Kopf.
defmod Vergleich MQTT2_CLIENT broker.hivemq.com
defmod Vergleich2 MQTT2_DEVICE
attr Vergleich2 autocreate 1
attr Vergleich2 devicetopic fhem/test/grid/frq/herrmannj

Da habe ich noch etgwas vergessen, aber was?