59_Buienradar

Begonnen von Christoph Morrison, 23 Juli 2019, 21:37:15

Vorheriges Thema - Nächstes Thema

Jamo

#120
ZitatGefällt mir. Wie hast du das mit dem Picker rechts (AtHome) bei Buienradar realisiert?

Hier mal die Raw definitionen.
Der 'Picker' ist ein einfach ein 'widgetOverride Location'  beim Buienradar_bar. Dann ein notify auf ein change von Location, um die Lat/Lon Koordinaten zu ändern.
Wenn der Location Picker auf 'Location-iPhone' gestellt ist, hole ich mir die aktuellen Koordinaten von owntracks auf dem iPhone, über MQTT (notify auf eine koordinatenändrung). Dann eine Push Notification (Pushover), sobald der Rainbegin von unknown auf eine Anfangszeit geht. Beim Radfahren ganz nützlich.

Zusätzlich zum Buienradar_bar, habe ich auch noch den Buienradar state über stateformat formatiert und verschiedenfarbig gemacht, abhängig von der Regenmenge.

defmod Buienradar Buienradar 48.1234 11.1234
attr Buienradar alias Regenradar
attr Buienradar disabled 0
attr Buienradar event-on-change-reading rainAmount,rainBegin,rainNow
attr Buienradar ALARME
attr Buienradar interval 300
attr Buienradar region de
attr Buienradar room Alarme,Weather
attr Buienradar stateFormat { my $Amount = ReadingsNum($name,"rainAmount",0);
  my $Max    = ReadingsNum($name,"rainMax",0);
  my $Now    = ReadingsNum($name,"rainNow",0);
  my $Ttl    = ReadingsNum($name,"rainTotal",0);
  my $Start  = ReadingsVal($name,"Begin","-");
  my $End    = ReadingsVal($name,"End","-");
  my $Durat  = ReadingsVal($name,"rainDuration","-");
  my $string  = sprintf("%s-%s (%s) &nbsp Now:%.1f &nbsp Max:%.1f &nbsp Amnt:%.1fl/m² &nbsp Tot:%.1f",$Start,$End,$Durat,$Now,$Max,$Amount,$Ttl);
  if ($Amount > 1 && $Amount < 7) {
    return '<font color="teal"><b>' . $string . '</b></font>'}
  elsif ($Amount >= 7 && $Amount < 20 ) {
    return '<font color="DeepSkyBlue"> <b>' . $string . '</b></font>'}
  elsif ($Amount >= 20 && $Amount < 25 ) {
    return '<font color="MediumVioletRed"><b>' . $string . '</b></font>'}
  elsif ($Amount >= 25 || $Max >= 2.5) {
    return '<font color="BlueViolet"><b>' . $string . '</b></font>'}
  else {return $string }
}

defmod Buienradar_bar weblink htmlCode {FHEM::Buienradar::BAR("Buienradar")}
attr Buienradar_bar group WETTER
attr Buienradar_bar room Favourites,PlotsWeather,Weather
attr Buienradar_bar sortby 191
attr Buienradar_bar webCmd Location:upd
attr Buienradar_bar widgetOverride Location:AtHome,Munich,Location-iPhone
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Jamo

#121
Hallo Christoph,
ich habe folgende Fehlermeldung vom Buienradar Modul bekommen, der Grund war, das im Modul im https aufruf, der erst Teil von "&region" als "registered" interpretiert wurde und dort das entsprechende "®" Zeichen für "&reg" eingesetzt wurde, also "®ion".
https://cdn-secure.buienalarm.nl/api/3.4/forecast.php?lat=46.881530&lon=11.435549®ion=de&unit=mm/u returns HTTP status code 404 instead of 200.

Um Abhilfe zu schaffen, habe ich einfach die Reihenfolge umgetauscht, um das &region zu umgehen, also region als erstes (mit Fragezeichen statt &), dann lat/lon, also:
https://cdn-secure.buienalarm.nl/api/3.4/forecast.php?region=de&lat=46.881530&lon=11.435549&unit=mm/u

damit funktionierts, ohne das man die Kodierung irgendwo einstellen muss.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

jnewton957

Hallo,
ich habe nun mal das Buienradar installiert. Version 2.2.5



Werte sind vorhanden:
Readings
Begin 06:50 2019-09-09 06:51:47
Duration 01:50 2019-09-09 06:51:47
End 08:40 2019-09-09 06:51:47
rainAmount 2.0 2019-09-09 06:56:47
rainBegin 2019-09-09 06:55:00 2019-09-09 06:56:47
rainData
0.1:0.1:0.1:0.1:0.1:0.1:0.1:0.1:0.1:0.09:0.09:0.09:0.09:0.09:0.09:0.09:0.09:0.08:0.08:0.07:0.07:0.08:0.08:0.08:0.08
2019-09-09 06:51:47
rainDataEnd 2019-09-09 08:40:00 2019-09-09 06:51:47
rainDataStart 2019-09-09 06:35:00 2019-09-09 06:51:47
rainDuration 01:50 2019-09-09 06:51:47
rainDurationMin 110 2019-09-09 06:51:47
rainEnd 2019-09-09 08:40:00 2019-09-09 06:51:47
rainLaMetric 100,100,100,100,100,100,100,100,100,90,90,90 2019-09-09 06:51:47
rainMax 0.1 2019-09-09 06:51:47
rainNow 0.2 2019-09-09 06:56:47
rainTotal 2.2 2019-09-09 06:51:47
state 0.1 2019-09-09 06:51:47



bei state format bekomme ich : Error evaluating Buienradar stateFormat: Can't modify single ref constructor in scalar assignment at (eval 133074) line 2, at EOF
syntax error at (eval 133074) line 9, near "\
  if"

Definition identisch inoma vom 20.8.2019
{ my $Amount = ReadingsNum($name,"rainAmount",0);;\
  my $Max    = ReadingsNum($name,"rainMax",0);;\
  my $Now    = ReadingsNum($name,"rainNow",0);;\
  my $Ttl    = ReadingsNum($name,"rainTotal",0);;\
  my $Start  = ReadingsVal($name,"Begin","-");;\
  my $End    = ReadingsVal($name,"End","-");;\
  my $Durat  = ReadingsVal($name,"rainDuration","-");;\
  my $string  = sprintf("%s-%s (%s) &nbsp Now:%.1f &nbsp Max:%.1f &nbsp Amnt:%.1fl/m² &nbsp Tot:%.1f",$Start,$End,$Durat,$Now,$Max,$Amount,$Ttl);;\
  if ($Amount > 1 && $Amount < 7) {\
    return '<font color="teal"><b>' . $string . '</b></font>'}\
  elsif ($Amount >= 7 && $Amount < 20 ) {\
    return '<font color="DeepSkyBlue"> <b>' . $string . '</b></font>'}\
  elsif ($Amount >= 20 && $Amount < 25 ) {\
    return '<font color="MediumVioletRed"><b>' . $string . '</b></font>'}\
  elsif ($Amount >= 25 || $Max >= 2.5) {\
    return '<font color="BlueViolet"><b>' . $string . '</b></font>'}\
  else {return $string }\
}


Wo liegt mein Fehler?

Danke
FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

Jamo

Hast du alle "\" entfernt von der Raw definition? Deine Fehlermeldung sagt "line 9, near "\  <-
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Christoph Morrison

#124
Inzwischen habe ich 2.2 als stable veröffentlicht.
In 2.3 gibt es nun den gewünschten ColourBar und bald auch die Anpassungen für RainAmount.


Timmäää

Schön zu sehen, dass es weitergeht.
Du hast 2.2 als stable im github veröffentlicht, überlegst du darüber hinausgehend eine Veröffentlichtung des Moduls via FHEM-Standard?

Christoph Morrison

Zitat von: Timmäää am 14 Januar 2020, 08:53:54
Du hast 2.2 als stable im github veröffentlicht, überlegst du darüber hinausgehend eine Veröffentlichtung des Moduls via FHEM-Standard?

Nein. Es ist mir zu aufwändig, eine technisch dermaßen altmodische Struktur wie das SVN zu pflegen. Und da Buienradar nie über das SVN ausgeliefert wurde, gibt es auch da auch keine legacy zu pflegen.

Timmäää

Danke für die Info und das Modul, ich nutze es natürlich trotzdem :) Wäre für den Benutzer einfacher gewesen, aber wenn du mehr Arbeit hast, habe ich für die Entscheidung nur Verständnis.

Gruß,
Tim

Localhorst82

Hallo,

wie kann ich das Modul bzw. {FHEM::Buienradar::HTML('Buienradar')} in FTUI einbinden?
Das Modul funktioniert einwandfrei in FHEMWEB abgesehen von der Integration in FTUI.
Es liegt aber 100% an mir. Als weblink device wird alles korrekt angezeigt, wie auch im Buienradar device selbst: htmlCode {FHEM::Buienradar::HTML('Buienradar')}

Vielen Dank im voraus!

Gruß
Horst

Christoph Morrison

Buienradar wurde in Version 3.0.5 veröffentlicht.
Changenotes etc. stehen dort.

mahowi

Da sind wohl noch ein paar Debug-Zeilen im Code geblieben:

2020.04.19 12:29:05.828 1: DEBUG>Attr called \n $VAR1 = 'set';
$VAR2 = 'BR';
$VAR3 = 'region';
$VAR4 = 'nl';

2020.04.19 12:29:05.831 1: DEBUG>Attr called \n $VAR1 = 'set';
$VAR2 = 'BR';
$VAR3 = 'interval';
$VAR4 = '120';

2020.04.19 12:29:05.837 1: DEBUG>Attr called \n $VAR1 = 'set';
$VAR2 = 'BR';
$VAR3 = 'interval';
$VAR4 = '120';

2020.04.19 12:29:05.841 1: DEBUG>Attr called \n $VAR1 = 'set';
$VAR2 = 'BR';
$VAR3 = 'region';
$VAR4 = 'nl';

2020.04.19 12:29:05.844 1: DEBUG>Attr called \n $VAR1 = 'set';
$VAR2 = 'BR';
$VAR3 = 'room';
$VAR4 = 'Weather';

2020.04.19 12:29:05.845 1: DEBUG>Attr called \n $VAR1 = 'set';
$VAR2 = 'BR';
$VAR3 = 'verbose';
$VAR4 = '1';
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Jamo

#131
Und da ist noch ein Fehler: in der sub 'Get', Zeile 303:    "return q[It is raining] if $begin = 0;"
2020.04.19 12:54:10 1: PERL WARNING: Found = in conditional, should be == at ./FHEM/59_Buienradar.pm line 303, <$fh> line 7079.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

lichtimc

Hallo,


wollte fragen ob es was vergleichbares für Österreich gibt.

Bei diesem Modul kommt "Location is not in coverage for region 'de|nl'"


Danke, lg

mahowi

Hat sich am Weblink für die GoogleCharts etwas geändert? Ich bekomme beim Aufrufen der Seite einen Fehler im Javascript angezeigt:
fhem?detail=BR_weblink line 1734:
Uncaught SyntaxError: Unexpected token '{'


Die Stelle im Quelltext der Seite:
<script type='text/javascript'>

    google.charts.load('current', {packages:['corechart']});
    google.charts.setOnLoadCallback(drawChart);
    function drawChart() {
        var data = google.visualization.arrayToDataTable([
            ['string', '${legend}'],
            ${data}
        ]);

        var options = {
            title: '${title}',
            hAxis: {
                title: '${hAxis}',
                slantedText:true,
                slantedTextAngle: 45,
                textStyle: {
                    fontSize: 10}
            },
            vAxis: {
                minValue: 0,
                title: '${vAxis}'
            }
        };

        var my_div = document.getElementById(
            'chart_${name}');        var chart = new google.visualization.AreaChart(my_div);
        google.visualization.events.addListener(chart, 'ready', function () {
            my_div.innerHTML = '<img src='' + chart.getImageURI() + ''>';
        });

        chart.draw(data, options);}
</script>


Der Fehler wird hinter ${data} angezeigt (siehe Screenshot).
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Christoph Morrison

Zitat von: mahowi am 20 April 2020, 13:04:07
Hat sich am Weblink für die GoogleCharts etwas geändert? Ich bekomme beim Aufrufen der Seite einen Fehler im Javascript angezeigt:

Hab's aufgenommen: https://github.com/fhem/mod-Buienradar/issues/94