dsmrreader / dsmr-reader

DSMR-telegram reader & data visualizer for hobbyists. Free for non-commercial use.
https://dsmr-reader.readthedocs.io
Other
460 stars 95 forks source link

Onverwerkte telegrammen #913

Closed style2k closed 4 years ago

style2k commented 4 years ago

raspbery pi 3 dsrm versie 2.6

image

gister werkte het nog prima nu lijkt de boel weer is vast te lopen . het is kwart over 7 maar hier klopt de tijdlijn niet ook zie je dat die eerst 9 55 aangeeft en daarna weer 9,54

image

ook hier heeft die ineens van de 1 op de andere dag grote achterstand op onverwerkte gegevens . dit is al de zoveelste keer dat er dingen niet kloppen een pi is zo onbetrouwbaar . maar goed hoe kan dit gewoon steeds vastlopen of achter de feiten aan . want er is geen beweging te krijgen in onverwerkte berichten . vorige keer ging het langzaam maar nu gaat het dus totaal niet .

ik zit op versie 2.6 en denk dat ik toch ga updaten maar hoe voorkom ik steeds deze problemen ??

zoals ik a ldacht gaat het bij de backup al gelijk fout ik volg de update handleiding en ik krijg geen melding backup created ?

dennissiemensma commented 4 years ago

Zoals je zelf al aangeeft denk ik dat je het beste eerst kunt updaten en dan kijken of het iets oplost.

Je zult daarvoor eerst naar v2.15 moeten updaten en daarna hoger. Dat kan gewoon met:

sudo su - dsmr
./deploy.sh

Zit je inmiddels al op v2.15?

style2k commented 4 years ago

ik zit al op 3.5 en nie eerst geupdate naar 2.15 pffff moet ik weer terug nu ?

dennissiemensma commented 4 years ago

Je hoeft absoluut niet terug. In je vorige bericht stond nog dat je op 2.6 zat en dat het niet helemaal lukte, vandaar de suggestie.

style2k commented 4 years ago

ik kan naar het dashboard maar als ik naar een andere pagina wil status of live statestieken blijft die laden dus kom nie verder . en hoe zie ik of ik een v4 of v5 meter heb ?

wat ik wel zag bij de instalatie --- Checking & synchronizing static file changes.

332 static files copied to '/var/www/dsmrreader/static', 223 unmodified.

--- Reloading running apps...

kan blijkbaar wat dingen niet vinden of hoort dit zo?

dennissiemensma commented 4 years ago
sudo supervisorctl restart all
style2k commented 4 years ago

staat nix op de meter . en ik kom nergens op dashboard en als ik wat anders kies blijft die zoeken . kom nergens anders op ook zie ik op het dashboard dat ik geen gegevens heb onderaan waar staat wat de data is tot vandaag . allemaal leeg

dennissiemensma commented 4 years ago

Dat kan kloppen als er nog onverwerkte telegrammen zijn. Heb je inmiddels wel alle processen herstart voor de zekerheid?

dennissiemensma commented 4 years ago

Wat krijg je te zien als je dit doet:

sudo su - postgres
psql dsmrreader

select count(id) from dsmr_datalogger_dsmrreading where processed = false;
style2k commented 4 years ago

dsmrreader=# select count(id) from dsmr_datalogger_dsmrreading where processed = false; count

4605 (1 row)

dsmrreader=#

dennissiemensma commented 4 years ago

Als als je die query een paar keer uitvoert (pijltje omhoog en dan enter), zie je dat het aantal afneemt? Of neemt het alleen maar toe?

style2k commented 4 years ago

ja omlaag dan weer iets omhoog en dan weer laag

dennissiemensma commented 4 years ago

Wat krijg je hier voor output te zien:

sudo su - postgres
psql dsmrreader

select id, timestamp from dsmr_datalogger_dsmrreading order by timestamp desc limit 5;
style2k commented 4 years ago

4584 (1 row)

dsmrreader=# select id, timestamp from dsmr_datalogger_dsmrreading order by timestamp desc limit 5; id | timestamp
---------+------------------------ 3585657 | 2020-03-01 20:43:55+01 3585656 | 2020-03-01 20:43:48+01 3585655 | 2020-03-01 20:43:41+01 3585654 | 2020-03-01 20:43:34+01 3585653 | 2020-03-01 20:43:27+01 (5 rows)

dsmrreader=#

dennissiemensma commented 4 years ago

WIl je eens kijken of er goede indexes op de tabel staan?

sudo su - postgres
psql dsmrreader

\dS dsmr_datalogger_dsmrreading

Het gaat om het blok onderaan. Dat moet iets zijn als:

Indexes:
    "dsmr_datalogger_dsmrreading_pkey" PRIMARY KEY, btree (id)
    "dsmr_datalogger_dsmrreading_9d090a40" btree (processed)
    "dsmr_datalogger_dsmrreading_timestamp_1f7020d1_uniq" btree ("timestamp")
style2k commented 4 years ago
                                                Table "public.dsmr_datalogger_dsmrreading"
             Column              |           Type           | Collation | Nullable |                         Default                         
---------------------------------+--------------------------+-----------+----------+---------------------------------------------------------
 id                              | integer                  |           | not null | nextval('dsmr_datalogger_dsmrreading_id_seq'::regclass)
 timestamp                       | timestamp with time zone |           | not null | 
 electricity_delivered_1         | numeric(9,3)             |           | not null | 
 electricity_returned_1          | numeric(9,3)             |           | not null | 
 electricity_delivered_2         | numeric(9,3)             |           | not null | 
 electricity_returned_2          | numeric(9,3)             |           | not null | 
 electricity_currently_delivered | numeric(9,3)             |           | not null | 
 electricity_currently_returned  | numeric(9,3)             |           | not null | 
 extra_device_timestamp          | timestamp with time zone |           |          | 
 extra_device_delivered          | numeric(9,3)             |           |          | 
 processed                       | boolean                  |           | not null | 
 phase_currently_delivered_l1    | numeric(9,3)             |           |          | 
 phase_currently_delivered_l2    | numeric(9,3)             |           |          | 
 phase_currently_delivered_l3    | numeric(9,3)             |           |          | 
 phase_currently_returned_l1     | numeric(9,3)             |           |          | 
 phase_currently_returned_l2     | numeric(9,3)             |           |          | 
 phase_currently_returned_l3     | numeric(9,3)             |           |          | 
 phase_voltage_l1                | numeric(4,1)             |           |          | 
 phase_voltage_l2                | numeric(4,1)             |           |          | 
 phase_voltage_l3                | numeric(4,1)             |           |          | 
 phase_power_current_l1          | integer                  |           |          | 
 phase_power_current_l2          | integer                  |           |          | 
 phase_power_current_l3          | integer                  |           |          | 

~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
(END)
dennissiemensma commented 4 years ago

Als je naar beneden scrollt, wat staat er in het blokje 'Indexes'? Ik hoef alleen dat te weten.

style2k commented 4 years ago

ja verder naar beneden kom ik niet zoals ik ook al zei in het dashboard staan geen gegevens onderaan dus is het mss zo dat de database niet gevuld is ofzo ???

dennissiemensma commented 4 years ago

Vermoedelijk komt het doordat er een achterstand is met het verwerken van metingen, dus dat probeer ik voor je op te lossen.

dennissiemensma commented 4 years ago

Zie je wel meer output als je het op deze manier probeert?

sudo su - postgres

psql -d dsmrreader -c '\dS dsmr_datalogger_dsmrreading'
style2k commented 4 years ago

nee ook niet stopt ook na curent

dennissiemensma commented 4 years ago

Oke, nog een laatste variant:

sudo su - postgres
psql dsmrreader

SELECT indexname, indexdef FROM pg_indexes WHERE tablename = 'dsmr_datalogger_dsmrreading';
style2k commented 4 years ago

dsmrreader=# SELECT indexname, indexdef FROM pg_indexes WHERE tablename = 'dsmr_datalogger_dsmrreading'; indexname | indexdef -----------+---------- (0 rows)

dsmrreader=#

dennissiemensma commented 4 years ago

Top. Dan is het duidelijk wat de oorzaak is en daar is wat aan te doen.

Wil je beginnen met kijken of alle migraties uitgevoerd zijn, dit kan met:

sudo su - dsmr
./manage.py showmigrations --list

Je hoeft er alleen even doorheen te scrollen en te kijken of je regels ziet met:

[ ] naam ...
ipv
[X] naam ...

Als er overal een [X] voor staat dan is het goed.

style2k commented 4 years ago

ja ] 0013_process_sleep [ ] 0014_day_total_cost_index [ ] 0005_weather_refactor_scheduling [ ] 0006_schedule_weather_update de rest staat een x voor

dennissiemensma commented 4 years ago

In dat geval mag je nog eerst dit doen:

sudo su - dsmr
./manage.py migrate

Daarna zou je geen migraties meer moeten zien zonder [X].

style2k commented 4 years ago

als ik hetzelfde doe zie ik nog steeds die vakjes zonder x

dennissiemensma commented 4 years ago

Krijg je wel output te zien als je die ./manage.py migrate uitvoert?

style2k commented 4 years ago

mrreader) dsmr@raspberrypi:~/dsmr-reader $ ./manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, dsmr_api, dsmr_backend, dsmr_backup, dsmr_consumption, dsmr_datalogger, dsmr_frontend, dsmr_mindergas, dsmr_mqtt, dsmr_notification, dsmr_pvoutput, dsmr_stats, dsmr_weather, sessions Running migrations: Applying dsmr_mqtt.0013_process_sleep...Traceback (most recent call last): File "./manage.py", line 10, in execute_from_command_line(sys.argv) File "/home/dsmr/.virtualenvs/dsmrreader/lib/python3.7/site-packages/django/core/management/init.py", line 401, in execute_from_command_line utility.execute() File "/home/dsmr/.virtualenvs/dsmrreader/lib/python3.7/site-packages/django/core/management/init.py", line 395, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/dsmr/.virtualenvs/dsmrreader/lib/python3.7/site-packages/django/core/management/base.py", line 328, in run_from_argv self.execute(*args, cmd_options) File "/home/dsmr/.virtualenvs/dsmrreader/lib/python3.7/site-packages/django/core/management/base.py", line 369, in execute output = self.handle(*args, *options) File "/home/dsmr/.virtualenvs/dsmrreader/lib/python3.7/site-packages/django/core/management/base.py", line 83, in wrapped res = handle_func(args, kwargs) File "/home/dsmr/.virtualenvs/dsmrreader/lib/python3.7/site-packages/django/core/management/commands/migrate.py", line 233, in handle fake_initial=fake_initial, File "/home/dsmr/.virtualenvs/dsmrreader/lib/python3.7/site-packages/django/db/migrations/executor.py", line 117, in migrate state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial) File "/home/dsmr/.virtualenvs/dsmrreader/lib/python3.7/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial) File "/home/dsmr/.virtualenvs/dsmrreader/lib/python3.7/site-packages/django/db/migrations/executor.py", line 245, in apply_migration state = migration.apply(state, schema_editor) File "/home/dsmr/.virtualenvs/dsmrreader/lib/python3.7/site-packages/django/db/migrations/migration.py", line 124, in apply operation.database_forwards(self.app_label, schema_editor, old_state, project_state) File "/home/dsmr/.virtualenvs/dsmrreader/lib/python3.7/site-packages/django/db/migrations/operations/special.py", line 190, in database_forwards self.code(from_state.apps, schema_editor) File "/home/dsmr/dsmr-reader/dsmr_mqtt/migrations/0013_process_sleep.py", line 20, in migrate_forward process_sleep=decimal.Decimal(settings.DSMRREADER_MQTT_SLEEP) File "/home/dsmr/.virtualenvs/dsmrreader/lib/python3.7/site-packages/django/conf/init.py", line 77, in getattr val = getattr(self._wrapped, name) AttributeError: 'Settings' object has no attribute 'DSMRREADER_MQTT_SLEEP'

dennissiemensma commented 4 years ago

Ik denk dat het goed is om aan te geven als je zulke fouten ziet, want er is dus nog meer aan de hand. Het command crasht namelijk hier.

Open even je dsmrreader/settings.py (/home/dsmr/dsmr-reader/dsmrreader/settings.py) en verwijder de regel met DSMRREADER_MQTT_SLEEP = ...

Probeer het daarna nogmaals met migrate.

style2k commented 4 years ago

DSMRREADER_DATALOGGER_SLEEP = 5 deze regel bedoel je ? die hebben we er volgens mij toen de 1e keer ingezet toen ik die problemen had .

folder not writable moet ik niet eerst alles stopzetten?

dennissiemensma commented 4 years ago

Er staan meerdere in vermoed ik. De foutmelding hierboven gaat over DSMRREADER_MQTT_SLEEP.

Ze moeten er allemaal uit.

Je kunt die sleep(s) nu instellen via de admin-interface.

dennissiemensma commented 4 years ago

Ik vermoed dat de applicatie het nu ook niet lekker doet door die config. Dat is in latere versies veranderd namelijk. Besef wel dat je opeens zo'n 15 versies verder bent, met alle wijzigingen van dien.

Als je de settings.py hebt aangepast, kun je dat migrate-command weer proberen.

style2k commented 4 years ago

nee alleen die ik noemde staat er in echt nix anders met sleep

dennissiemensma commented 4 years ago

Prima. Werkt de migrate nu wel zonder fouten?

style2k commented 4 years ago

kan het setting bestand niet wegschrijven

dennissiemensma commented 4 years ago

Ben je wel dsmr gebruiker?

sudo su - dsmr
vi dsmrreader/settings.py
dennissiemensma commented 4 years ago

En anders even kijken wat de permissies zijn met:

ls -l /home/dsmr/dsmr-reader/dsmrreader/settings.py
style2k commented 4 years ago

-rw-r--r-- 1 dsmr dsmr 1502 Oct 8 22:31 /home/dsmr/dsmr-reader/dsmrreader/settings.py

wil de file gewoon kunne nediten vanuit de txt editor van de raspian desktop ik ben gewoon admin dus snap nie dat ik geen rechten heb in de dsmr folder heb

dennissiemensma commented 4 years ago

Ik kan je daar verder niet bij helpen. Mijn advies is om een tekst-editor op de commandline aan te leren. vi is wellicht wat lastig, maar nano is al stukken makkelijker:

sudo su - dsmr
nano dsmrreader/settings.py

Je kunt na de wijzigingen opslaan met CTRL + X dacht ik (staat onderaan), en als die dan vraagt om op te slaan, natuurlijk daarvoor kiezen.

style2k commented 4 years ago

ok gelukt overal staat nu een x voor

dennissiemensma commented 4 years ago

Wil je nu proberen alles te herstarten om te kijken of de interface het daarmee weer doet?

sudo supervisorctl restart all
style2k commented 4 years ago

ja de interface deed het voor zover wel hoor dashbord maar als ik verder ga nix nu kom ik wel op bijv archief maar hij blijft laden image

wel is op het dashbord nog steeds geen info over verbruik te zien

image

en weet dus niet of het komt doordat die nog data aan verwerken is dat het allemaal zo traag gaat

dennissiemensma commented 4 years ago

Zorg er in ieder geval voor dat de datalogger weer op 5 of 10 seconden sleep staat. Dat regel je nu via de webinterface:

Selection_001

Daarna:

sudo supervisorctl restart dsmr_datalogger
dennissiemensma commented 4 years ago

Ik stel voor om dan morgen verder te gaan. Kijk wel even of de datalogger ondertussen nieuwe data in je database opslaat:

sudo su - postgres
psql dsmrreader

select id, timestamp from dsmr_datalogger_dsmrreading order by timestamp desc limit 5;

Die tijdstippen moeten dan recent zijn.

style2k commented 4 years ago

ok instellingen veranderd en op 10 gezet gaat nu wat vlotter lijkt . alleen kan ik van maart nog geen gegevens zien in archief van vandaag.en niet op het dashbord terwijl die met verwerken al bij 12.50 vanmiddag zit ofzo

style2k commented 4 years ago

het is weer bijgewerkt nu . het laden van de site is ook wat vlotter maar nog steeds een stuk trager dan voorheen . maar de data is weer bij dus

dennissiemensma commented 4 years ago

Dat is fijn om te horen. Op de eerste dag van de maand is er nooit een Archief beschikbaar voor die maand. Ik zal kijken of ik daar een melding of iets voor kan maken.

dennissiemensma commented 4 years ago

Wat betreft de performance, kun je eens kijken wat de load op je Pi is? Bijvoorbeeld met top of htop?

style2k commented 4 years ago

ja cpu gaat redelijk op en neer van 9 procent to 99 dus, ja het is een standaard pi 3 . wat me ook opvalt is dat in dashboard het recente gebruik van vandaag hoger is als het totaal gebruik van vandaag en gisteren

dennissiemensma commented 4 years ago