Maak van je Raspberry Pi een weerstation

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

Vorige topic - Volgende topic

Joost

Citaat van: GerritH op 23 februari 2020, 20:23:04
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?

Ja, dat is juist!

Citaat van: GerritH op 23 februari 2020, 20:23:04
2) Bij het Lua-script kan ik nog een Trigger instellen, met keuze All/Device/Security/Time/User variable. Welke te kiezen?

Dit script is time-based.

Citaat van: GerritH op 23 februari 2020, 20:23:04
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?

Dan is de data bij DarkSky/Buienradar (even) niet beschikbaar/bereikbaar.

Joost

Citaat van: bobha43 op 26 februari 2020, 08:45:24
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?

Jouw error verwijst naar regel 132 in het script. Het lijkt erop dat je het script niet 1 op 1 overgenomen hebt en dat regelnummers verschoven zijn. De foutmelding heeft nl. niets te maken met "local config=assert(io.popen('curl "http://'..domo_ip..'/json.htm?type=settings"'))".

De 2e melding (....more than 10 seconds) is slechts een melding i.p.v. een error. Het gaat alleen aan dat het script meer dan 10 seconden loopt. Ik verwacht dat deze melding verdwijnt, zodra de (1e) error opgelost is.

Zorg ervoor dat je altijd een script exact overneemt en dat de regels niet verschuiven, anders is het een speld zoeken in een hooiberg. Zodra het eenmaal werkt dan kun je dingen aan gaan passen.

bobha43

@Joost
Bedankt voor je snelle antwoord.
Ik heb geprobeerd het script exact over te nemen en alleen de nodige veranderingen te maken.
Volgens mij is dit gelukt en ik zie geen onverwachte verschillen tussen de twee (ook geen extra of ontbrekende regels).

Hier is mijn bewerkt script (als rtf bestand om de veranderingen te laten zien). Ik heb sinds gisteren alleen de regio code (Zuid Holland) veranderd.

Het resultaat en de error/warning codes zijn onveranderd. Alle "weerstation" devices werden voor het laatst gezien op 20/2 (datum van aanmaak).

Als het niet aan het script ligt, waar moet ik verder kijken?

Groet
bobha43

Joost

Citaat van: bobha43 op 26 februari 2020, 19:48:43
Als het niet aan het script ligt, waar moet ik verder kijken?

Ik vermoed dat je geen GPS-coördinaten hebt ingevuld in Domoticz bij Setup > Settings > Location.

bobha43

@Joost,
Bedankt voor je antwoord, maar mijn GPS coordinaten zijn wel goed ingevuld in Domoticz.

Ik heb alle stappen weer gecontroleerd:

  • PHP 7.3 is ge-installeerd
  • nl_NL-UTF-8 is OK (ook en_GB.UTF-8)
  • de meteo-alarm-weather-warnings bestanden zijn correct ge-installeerd en bijgewerkt.
  • (sommige van deze bestanden hebben specifieke UK/Scotland waardes erin maar ik heb die niet veranderd)
  • Ik heb mijn eigen DarkSky API key gebruikt en onder Weather/Forecast zie ik een weerkaart met mijn plaatselijke gegevens
  • Ik heb mijn Pi ge-reboot en Domoticz opnieuw gestart maar er is geen verandering in de situatie.
  • Iedere 10 minuten zie ik het bericht dat het script loopt voor meer dat 10 seconden. Kort daarna krijg ik het bericht ".... attempt to index local 'jsonData'  (is nil value)"
  • Ik heb debug in het script veranderd in 5. De enige resultaat is dat nu de dagen van de week verschijnen (correct) in de log.
  • Ik heb alles in deze topic goed doorgelezen maar kan niets vinden dat mij verder helpt.

Ik heb het (frustrerend) gevoel heel dicht bij een werkend systeem te zijn maar weet absoluut niet hoe ik verder moet. Jammer want het lijkt mij een heel mooi systeem.

Joost

Citaat van: bobha43 op 27 februari 2020, 18:24:57
Ik heb het (frustrerend) gevoel heel dicht bij een werkend systeem te zijn maar weet absoluut niet hoe ik verder moet. Jammer want het lijkt mij een heel mooi systeem.


Ik zie dat je onderstaande settings gebruikt. Zijn deze juist? Staan de meteo-alarm-weather-warnings bestanden werkelijk op een ander device dan waar het script op draait? Anders zou het webservice_ip = "192.168.2.171.41" moeten zijn (het moet in ieder geval niet het IP van de router zijn).




local domo_ip          = "192.168.171.41:8080"               -- IP adres van Domoticz, inclusief poort  RPi4
local webserver_ip      = "192.168.178.1"                    -- IP adres van webserver      ROUTER



Wat krijg je te zien als je http://192.168.171.41:8080/json.htm?type=settings in de browser opent?

bobha43

@Joost
Nee, Ik had het al veranderd in 192.168.178.41. Ik hoop dat ik geen verouderd script heb gestuurd. Als controle, ik heb in de huidige versie onder "Weer Alerts" de regio ook in 009 (ZH) veranderd. Verder zal er niets veranderd zijn geloof ik. Excuses als het een oude versie is geweest.

Ik heb  http://192.168.178.41:8080/json.htm?type=settings geprobeerd (178 ipv 171). Zie bijgevoegde bestand. Ik neem aan van het formaat dat dit een json bestand is. Ik zie de zelfde waardes terug in Domoticz/Settings.

M.v.g.

bobha43


GerritH

@Joost:
Dank voor je reactie. Ik had een oude Pi (model 1B) gebruikt, heb daar nu alleen nog het volgen van de slimme meter op staan en dat werkt prima. Voor het weerstation een nieuwe Pi gebruikt, alle stappen netjes doorlopen, en jawel, het draait als een zonnetje (zelfs om 23.00 uur :-).

Dank voor dit leuke script, ik ga verder onderzoeken wat er allemaal mee kan.

bobha43

@Joost
Weer moet ik mijn excuses aanbieden. Ik heb gezien dat het gebruik van 171 ipv 178 in mijn script lag.
Ik heb het veranderd, en Domoticz opnieuw gestart. Nu krijg ik wel iets te zien in de log (zie bijgev. bestand), maar de devices blijven "Last seen 20/2". Erger, mijn elektriciteit en gas devices die altijd goed werkten doen het niet meer.
Ik zal morgen alles goed doorkijken.
Bedankt voor je hulp.
m.v.g.
Bob

Kubra

Hallo,

Ik kom (idem bobha43) van de Ehoco site "Maak van Domoticz een weerstation". Ik merk hierbij wel op dat ik e.e.a. op een Synology heb draaien en had daar waar nodig de pad-verwijzingen in de scripts op aangepast. Ik heb dit een hele tijd geleden (werkend) geïnstalleerd echter de laatste tijd kreeg ik foutmeldingen.
Op de site werd melding gemaakt over te gaan naar een nieuwe versie. Aldus ben ik hier beland.

Ik heb alle oude scripts en devices verwijderd en van scratch alles weer proberen werkend te krijgen echter loop ik tegen aan aantal zaken aan. Ik wil niet direct op de foutmeldingen in gaan maar eerst een paar zaken m.b.t. de instellingen af kaarten. Omdat ik Domoticz op een Synology heb draaien, heb ik het script als "Gebeurtenis" ingevoerd. Dit werkte bij de oude versie prima.

Ik twijfel namelijk of de instructies, uit de eerste post (met daaronder het nieuwe script), juist c.q. actueel zijn.
   
Ik citeer:

"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." De regelaanduiding strookt niet met het script. Bij mij staat deze nl. op 408. Is op zich niet erg, en ik zag dat er meerdere gebruikers dit in deze draad hebben opgemerkt, maar omdat het script niet werkt, wordt je op het verkeerde been gezet. 

"Op regel 556 moet je het getal 25 vervangen door het IDX van device "Waarschuwing vandaag"." Hetzelfde als bij de vorige, bij mij is dit in het script regel 537.
 
"Maak in Domoticz virtuele devices aan met de namen, zoals ze op regel 32 t/m 54 staan" Dit is wel een punt waar ik op vastloop. Regel 32 begint (bij mij, wellicht ook weer hetzelfde als bij de regels 408 en 556) met "local weerstation....".
In het oude script moest je de idx-en van alle virtuele devices in het script vermelden zodat Domoticz een en ander juist kon koppelen. Ik mis dit nu in de uitleg. Ik heb nu de virtuele devices in Domoticz exact benoemd, zoals in het script achter "local dev_...... " staat maar dit werkt (uiteraard) niet.

Om nu op de rit te komen, zou ik graag vernemen of de gegeven uitleg i.d.d. niet helemaal strookt met de actuele situatie en hoe de inrichting m.b.t. de virtuele devices precies moet zijn. Alvast bedankt. 

Joost

Citaat van: Kubra op 13 maart 2020, 13:16:46
Om nu op de rit te komen, zou ik graag vernemen of de gegeven uitleg i.d.d. niet helemaal strookt met de actuele situatie en hoe de inrichting m.b.t. de virtuele devices precies moet zijn. Alvast bedankt.

Er zijn in de loop van de tijd een aantal wijzigingen in het nieuwe script doorgevoerd, waardoor de verwijzing van de regelnummers in de 1e post niet meer overeen kwamen met het script. Dit is nu aangepast.

In het oude script werkt inderdaad gebruik gemaakt van IDX's en in het nieuwe script wordt gebruik gemaakt van de namen van de devices: de naam van een device in het script moet dus exact overeen komen met de naam een device in Domoticz (hoofdletter-gevoelig!).

Het script (en de uitleg) zijn verder actueel en alles werkt perfect!

Kubra

Citaat van: Joost op 14 maart 2020, 07:58:13
Citaat van: Kubra op 13 maart 2020, 13:16:46
Om nu op de rit te komen, zou ik graag vernemen of de gegeven uitleg i.d.d. niet helemaal strookt met de actuele situatie en hoe de inrichting m.b.t. de virtuele devices precies moet zijn. Alvast bedankt.

Er zijn in de loop van de tijd een aantal wijzigingen in het nieuwe script doorgevoerd, waardoor de verwijzing van de regelnummers in de 1e post niet meer overeen kwamen met het script. Dit is nu aangepast.

In het oude script werkt inderdaad gebruik gemaakt van IDX's en in het nieuwe script wordt gebruik gemaakt van de namen van de devices: de naam van een device in het script moet dus exact overeen komen met de naam een device in Domoticz (hoofdletter-gevoelig!).

Het script (en de uitleg) zijn verder actueel en alles werkt perfect!

Hoi Joost,

Omdat ik het script op een Synology heb draaien, is het mij -zij het na enig gepuzzel- gelukt om het gehele script (incl. alle devices) werkend te krijgen  ;D.

Mogelijk dat andere gebruikers hiervan kunnen leren, derhalve hieronder een toelichting m.b.t. de knelpunten waar ik tegenaan liep.

Het eerste probleem was dat de locale "en_GB.UTF-8" niet was geïnstalleerd. Dit heeft mij nog enige tijd gekost (in een grijs verleden ooit eens moeten doen voor nl_NL.UTF-8), uit te zoeken hoe je dit nu op een Synology moet doen (uiteindelijk gelukt via commando uitvoeren (in Putty) localedef -f UTF-8 -i en_GB en_GB.UTF-8).  In eerste instantie had ik dit eerder al in het script zélf, gewijzigd naar "en_US.UTF-8", die was nl. wel geïnstalleerd. Hiermee werkte alle devices, op de Meteo warnings (Waarschuwingen vandaag en morgen) na.

Ik bleef hierdoor ieder uur een vage melding krijgen (/volume1/@appstore/domoticz/var/scripts/lua/JSON.lua:660: html passed to JSON:decode(): <!DOCTYPE html> etc.) en was in de veronderstelling dat dit met het ontbreken van en_GB.utf-8 had te maken. Achteraf gezien bleek dit niet het geval te zijn. Het probleem was dat ik de map met de bestanden van "Meteo ...\src" in de "Domoticz" map had gekopieerd, deze moet echter in de "web" map (/volume1/web/) staan.

Uiteindelijk is het allemaal gelukt en inderdaad mooi script, waarvoor mijn dank. Chapeau!

Tot slot als bijlage nog even een plaatje van een paar devices  ;)
   

bonestaak

Joost:
Ik moet de scripts en php bestanden dus oploaden naar:  /var/www/html/meteo-alarm-weather-warnings-1.1/src/   Hoe dat in Linux gaat weet ik niet maar ik heb dus even Samba geinstalleerd.  Ik krijg dan op mijn Pi  2 directories  domoticz  en gnupc  maar dat laatste is volgens mij een systeemmap  Onder die domoticz map heb ik uiteindelijk wel een www map  maar ik zie daarboven geen var map staan,   waar moet die var map precies komen?

Joost

Ik gebruik hier WinSCP voor. De map VAR zit in de structuur op hetzelfde niveau als de map HOME (op een Raspberry Pi).