Maak van je Raspberry Pi een weerstation

Gestart door Joost, 26 oktober 2019, 09:14:57

Vorige topic - Volgende topic

Wallgarden

Dank voor je bericht.
Ik gebruik echter alleen Domoticz op mijn PI en heb verder geen browser en Apache geinstalleerd. Dat lijkt me ook niet nodig wanneer ik de originele instructies van Joost bekijk.
Mogelijk zie ik dat niet goed.

Ik heb het volgende uitgevoerd conform instructies:
Download Meteo Alarm Weather Warnings en upload alle .php and .json bestanden in de map meteo-alarm-weather-warnings/src naar de map /var/www/html/meteo-alarm-weather-warnings-1.1/src/ op de Raspberry Pi. Wijzig vervolgens de naam van het warnings.json bestand naar warnings.php (je hebt nu dus 2 bestanden met dezelfde naam, 1x beginnend met een kleine letter en 1x beginnend met een hoofdletter). Open nu het bestand Period.php (in de subfolder /src). Op regel 31 wijzig je 'from' naar 'starttime' en wijzig je 'until' naar 'endtime'. Vergeet niet om de wijziging op te slaan!
Onder Settings vul je jouw gegevens in.
Op regel 406 zie je 013 staan. Dit cijfer is Noord-Brabant voor weer-waarschuwingen. Het cijfer kun je wijzigen naar jouw eigen provincie/kustgebied.
Op regel 556 moet je het getal 25 vervangen door het IDX van device "Waarschuwing vandaag".

De bestanden heb ik alle op 755 gezet met usernaam pi als owner.

De instructie: "Onder Settings vul je jouw gegevens in." heb ik geinterpreteerd zo dat hier alleen de coordinaten van mijn locatie worden bedoeld.



Nvbgm

De instructie van Joost geeft alleen de installatie van de php files aan. Maar je zult jou raspberry eerst als webserver in moeten richten om hem als zodanig ook te gebruiken.
Daar zijn verschillende mogelijkheden voor maar meestal gebruikt men daar apache2 voor . Daarbij zul je ook PHP7.x op jou raspberry moeten installeren om de php files te kunnen runnen.

https://howtoraspberrypi.com/how-to-install-web-server-raspberry-pi-lamp/

Met de browser bedoel ik niet dat je er een op jou raspberry moet installeren maar de browser op jou pc. Tenminste of die aanwezig is.

Wallgarden

Dank voor je bericht.

Ik wil helemaal niet de pi als webserver gebruiken. De Pi is de server voor Domoticz en dat werkt, behalve helaas voor de alarm meldingen.
Op mijn windows PC kan ik niet je aanbeveling "IP-ADRES/meteoalarm/warnings.json (meteoalarm veranderen in jou path)" gebruiken omdat de php bestanden op de PI staan voor gebruik met Domoticz. Bovendien moet, volgens de instructies, de naam van de file warnings.json gewijzigd worden in warnings.php.
warnings.json bestaat dus niet meer!

Ik denk dat we over verschillende omgevingen hebben of ik begrijp het niet; wat uiteraard ook mogelijk is.



Wallgarden

Mvbgm, dank voor de hulp.

Ik moet bekennen eea eerder niet goed te hebben begrepen.
Met je hulp ben ik in de richting van een oplossing gekomen.
met:    "http://<PI-IP-Adres>/meteo-alarm-weather-warnings-1.1/src/warnings.php?country=NL" in de browser van m'n windows PC krijg ik in het PI-log alert-meldingen te zien.
Nu afwachten of deze na een uur ook in Domoticz verschijnen.
Nogmaals dank.





Wallgarden

met:    "http://<IP-Adres_van_PI>/meteo-alarm-weather-warnings-1.1/src/warnings.php?country=NL" in de browser van m'n windows PC krijg ik keurig de juiste warden aangereikt.
Echter in Domoticz geen resultaten in "Waarschuwing vandaag" en "Waarschuwing morgen". De alerts worden niet bijgewerkt (tijd en waarden).
Wie helpt me in de juiste richting?


Wallgarden

Dit zijn de waarden die in mijn log verschijnen:
2020-02-18 01:00:09.874 Status: LUA: Alert type vandaag :0
2020-02-18 01:00:09.874 Status: LUA: Alert level vandaag :1
2020-02-18 01:00:09.874 Status: LUA: Alert kleur vandaag :groen

Helaas niet in Domoticz Utility. Geen resultaten in "Waarschuwing vandaag" en "Waarschuwing morgen". De alerts worden niet bijgewerkt (tijd en waarden).

Wallgarden

Alles werkt nu.
Dit heb ik moeten toevoegen om errors nil te voorkomen en waardoor Domoticz geen gegevens ontving:
vanaf regel 469:

      if debug==3 or debug==5 then
         print("Alert type vandaag :"..val_AlertType_Today)
         print("Alert level vandaag :"..val_AlertLevel_Today)
         print("Alert kleur vandaag :"..val_AlertColour_Today)
         if val_AlertStart_Today ~= nil then                                --toegevoegd
            print("Alert starttijd vandaag :"..val_AlertStart_Today)
         end                                                                --toegevoegd
         if val_AlertEnd_Today ~= nil then                                  --toegevoegd
            print("Alert eindtijd vandaag :"..val_AlertEnd_Today)
         end                                                                --toegevoegd
         if val_AlertType_Today1 ~= nil then                                --toegevoegd
            print("Alert type morgen :"..val_AlertType_Today1)
         end                                                                --toegevoegd
         if val_AlertColour_Today1 ~= nil then                              --toegevoegd
            print("Alert kleur morgen :"..val_AlertColour_Today1)
         end                                                                --toegevoegd
         if val_AlertStart_Today1 ~= nil then                               --toegevoegd
            print("Alert starttijd morgen :"..val_AlertStart_Today1)
         end                                                                --toegevoegd
         if val_AlertStart_End_Today1 ~= nil then                           --toegevoegd
            print("Alert eindtijd morgen :"..val_AlertEnd_Today1)
         end                                                                --toegevoegd
      end

Mooi script, werkt goed.
Dank allemaal.

bobha43

Hallo,
First my compliments on this excellent forum. I hope to learn a lot here!

I am very new to Domoticz, but I have successfully installed it on a Raspberry Pi 4 and linked it to my Smart meter and PV inverter. I can read my electricity and gas meters and can see the output of my inverter with SBFSpot.

I read with great interest parts 1-4 of "Maak van Domoticz een weerstation" and have tried to implement Part 1.
I have set up the devices and can see them all as "blocks" in Domoticz.
I have placed the lua files in the specified directories and edited wusSettings.lua to match the idx values to those shown in Domoticz.
I can see the log plot frames but there are no data and the items were "Last Seen" several days ago.
The Domoticz log file seems to be largely error free but occasionally reports a "nil value".

I have a lot to learn and may of course have made an error somewhere, but I would first like to check whether I have missed something in the set up. How is the link to the various information sources made?
Was there anything else that I needed to install?

If I can get Part 1 working I will go further.

Any help would be greatly appreciated.

Replies in Dutch are no problem.

bobha43

Na mijn bericht van een paar dagen geleden ben ik verder gaan zoeken. Gezien de eerste post in dit forum (van Joost) nieuwer is dan die van de vier delen van "Maak van Domoticz een Weerstation" waarmee ik ben begonnen, heb ik die stappen ook overgenomen.

Ik heb nu:

  • de 4 lua scripts van de eerste serie, in /home/pi/domoticz/scripts/dzVents/scripts(/modules)
  • de script van Joost als script_time_weerstation.lua in /home/pi/domoticz/scripts/lua
Ik heb de namen van de devices in wusSettings.lua en script_time_weerstation.lua aangepast aan de devices in Domoticz en de iDx waardes in wusSettings.lua ook aangepast.
Verder heb ik de "Voorbereidingen" uitgevoerd, inclusief mijn IP adressen en locale weerstation code (46 = Voorschoten) ingevoerd.
Niet wetend of dit echt nodig is heb ik ook Google Maps en DarkSky accounts gemaakt en de API codes in de scripts ingevoerd.
Lach niet te hard maar ik probeer mijn weg te vinden en ben als "newbie" ietwat in de war.

Als resultaat:

  • de devices verschijnen in Domoticz, maar de log grafieken hebben geen gegevens
  • Setup/Log geeft aan dat:

    • er ontbreekt een "}" in wusSettings. Ik kan het niet vinden.
    • de User Settings bestand is niet OK
Bijgevoegd zijn:
Log error lijst
script_time_weerstation.lua
wusSettings.lua

Ik hoop dat iemand mij kan helpen. Zoals ik zei ik ben volkmen nieuw op dit gebied en waarschijnlijk heb ik iets heel doms gedaan.
BVD

Joost

@bobha43, je gebruikt nog oude scripts (en waarschijnlijk een de oude devices). Alle oude scripts kun je verwijderen. Hier staat de nieuwe versie van het weer-script: https://domoticaboard.nl/index.php?topic=42.msg44#msg44

bobha43

@Joost,
Bedankt voor het nieuwe weer-script. Heb ik het oude script in de juiste folder (..../domoticz/scripts/lua) geplaatst? Is de naam (script_time_weerstation.lua) OK?
Staat dit script helemaal alleen? Ik zie geen idx waardes in het script. Hoe worden de sensors gekoppeld aan Domoticz?
Of moeten de vier scripts van "Maak van Domoticz een weerstation" ook blijven staan?
Ik kwam op jouw script vanuit de andere stukken en ben een beetje in de war. Misschien is er geen verbinding.
Hoe zit het met Google-maps en DarkSky.? Heb ik deze accounts nodig en hoef ik de eigen API-keys in te voeren?
Sorry voor al de vragen maar ik ben nieuw en aan het leren.
Nogmaals bedankt voor je werk en je antwoord.

bobha43

@Joost,
Sorry, ik heb nu pas gezien dat je schrijft dat ik alle oude scripts moet verwijderen.

GerritH

Dag,

Ik had alles redelijk werkend, kreeg in ieder geval waarden door op de verschillende devices. Moet me nog verdiepen in het deel met de waarschuwingen - berichten etc. Door een of andere oorzaak is de boel na 13.10 uur vanmiddag echter opgehouden met updaten. Ik zal alles nog eens nalopen.

Voor nu twee vragen:

1) In de map /var/www/html/meteo-alarm-weather-warnings-1.1/src heb ik staan de bestanden "Warning.php", "Warnings.php" en "warnings.php". Is dat juist?

2) Bij het Lua-script kan ik nog een Trigger instellen, met keuze All/Device/Security/Time/User variable. Welke te kiezen?

Als ik alles (weer) werkend krijg: leuk!

GerritH

GerritH

En toch al een derde vraag:

3) ik krijg sinds vanmiddag de foutmelding: 2020-02-23 22:20:04.718 Error: EventSystem: in Weerstation: [string "--[[..."]:144: attempt to index field 'currently' (a nil value)

In de code is dit net na regel 143: if jsonData ~= nil then  -- dit gebeurt soms rond middernacht.

Weet iemand wat hier fout gaat?

GerritH

bobha43

@Joost,

Ik heb de oude scripts verwijderd en het nieuwe script bijgewerkt en op mijn Pi geinstalleerd. Ik zie alle devices maar geen weergegevens (alleen lege grafieken). Mijn P1 meter en PV output (via SBFspot) blijven goed werken.
De Domoticz log geeft "Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_weerstation.lua: /home/pi/domoticz/scripts/lua/script_time_weerstation.lua:132: attempt to index local 'jsonData' (a nil value)" aan.

Ieder 5 minuten staat er ook "Error: EventSystem: Warning!, lua script /home/pi/domoticz/scripts/lua/script_time_weerstation.lua has been running for more than 10 seconds". Heeft dit met SBFspot te maken?

Doe ik iets duidelijk verkeerd? Waar moet ik verder kijken?

Kan iemand alsjeblieft helpen?