Niederschlagsvorhersage

Begonnen von LuBeDa, 14 September 2017, 17:24:47

Vorheriges Thema - Nächstes Thema

LuBeDa

Zitat von: ares am 01 Oktober 2017, 19:48:48
Um im Frontend später auch sinnvolle Texte und nicht "unknown" ausgeben zu müssen wär vielleicht noch ein neues Reading "rainDataEnd" sinnvoll.

Das verstehe ich nicht so ganz. Es gibt derzeit rainDataStart, rainBegin und rainEnd.
Die beiden letzten Werte sind "unknown" wenn in den Daten kein Regen "enthalten" ist.
Das Reading "rainDataEnd" müsste, nach meiner Meinung, den letzten in der Datenquelle enthaltenen Zeitpunkt angeben. Also wie im angehängtem Bild.

Oder?

Ludger

Fixel2012

Dumme Frage, aber wie bekomme ich denn aus den drei Möglichen Visualisierungen eine Grafik in Fhem angezeigt? Bzw TabletUI?

Über ein Weblink device mit {RainTMC_PNG("Regenvorhersage")} hat es leider nicht geklappt  :o

Danke,

Fixel
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

LuBeDa

Zitat von: Fixel2012 am 02 Oktober 2017, 23:02:48
Dumme Frage, aber wie bekomme ich denn aus den drei Möglichen Visualisierungen eine Grafik in Fhem angezeigt? Bzw TabletUI?

Über ein Weblink device mit {RainTMC_PNG("Regenvorhersage")} hat es leider nicht geklappt  :o

Danke,

Fixel

Die *_HTML und *_PNG Funktionen funktionieren nur im FHEMWEB. Man kann die PNG auch leider nicht mit Telegram versenden.

Für die Charts gibt es die *_logProxy Funktion.

Hier habe ich beschrieben wie ich es mache https://forum.fhem.de/index.php/topic,76651.msg686204.html#msg686204 geht analog auch mit dem RainTMC Device.

Ludger

ares

Zitat von: LuBeDa am 02 Oktober 2017, 20:24:20
Das verstehe ich nicht so ganz. Es gibt derzeit rainDataStart, rainBegin und rainEnd.
Die beiden letzten Werte sind "unknown" wenn in den Daten kein Regen "enthalten" ist.
Das Reading "rainDataEnd" müsste, nach meiner Meinung, den letzten in der Datenquelle enthaltenen Zeitpunkt angeben. Also wie im angehängtem Bild.

Oder?

Ludger

Für eine Ausgabe in Textform sind eventuell weitere Werte interessant.

Vorhersagezeitraum von <rainDataStart> bis <?>
Regenmenge aktuell <rainNow>
Regenmenge max <rainMax>

nächster Schauer von <rainBegin> bis <rainEnd>, Regenmenge <rainAmount>
Regenmenge gesamt von <rainBegin> bis <?> , Regenmenge <?>


Für eine Ausgabe als Chart auf der LaMetric wird ein Array benötigt. Kann ich das irgendwie abgreifen?

{
   "chartData": [ 1, 2, 3, 4, 5, 6, 7 ]
}


Manfred

LuBeDa

Zitat von: ares am 03 Oktober 2017, 09:38:46
Für eine Ausgabe als Chart auf der LaMetric wird ein Array benötigt. Kann ich das irgendwie abgreifen?

{
   "chartData": [ 1, 2, 3, 4, 5, 6, 7 ]
}


Welche Werte können die chartData-Elemente haben von 0..100 o.ä. Was ist dir lieber ein String z.B. "1|2|3" oder direkt der Text wie in deinem Beispiel?

Wenn es läuft hätte ich gerne ein Foto mit einem Chart :-)

ares

Zitat von: LuBeDa am 03 Oktober 2017, 10:54:16
Welche Werte können die chartData-Elemente haben von 0..100 o.ä. Was ist dir lieber ein String z.B. "1|2|3" oder direkt der Text wie in deinem Beispiel?

Mit Komma getrennte ganzzahlige Werte. Die Höhe passt sich automatisch an den höchsten Wert an, welche auch im Milliardenbereich liegen können.
Da die Auflösung fix ist (37×8 Pixel) sieht es mit 1-7, 9, 12, 18 oder 37 Balken am Besten aus.
Beispiel:
8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4

An Text werden bis zu 9 Zeichen gleichzeitig dargestellt bevor automatisch gescrollt wird. Falls Du das selbst im Browser testen möchtest, dann kannst Du Dich unter https://developer.lametric.com kostenlos anmelden und eine Indicator App zum Test erstellen.

Manfred

LuBeDa

#66
O.K. habe die Readings erweitert.

Ich liefere 12 Werte für die LaMetric zurück. Damit hat man eine Stunde im voraus.

Damit ich mir auch eine LaMetric leisten kann ;), hier mein Spenden-Link https://paypal.me/lubeda

Die neuen Versionen sind auch im ersten Post hinterlegt

Ludger

ares

Zitat von: LuBeDa am 03 Oktober 2017, 14:14:06
O.K. habe die Readings erweitert.

Ich liefere 12 Werte für die LaMetric zurück. Damit hat man eine Stunde im voraus.

Das ging ja flott. Hast Du einfach die Nachkommastellen abgeschnitten? Vielleicht solltest Du die Werte besser mit Faktor 10^"Anzahl maximaler Nachkommastellen" mulitplizieren, da ich trotz Regen keine Werte erhalte. Außerdem sollten 18 Werte möglich sein, für 37 Werte reicht es leider nicht.

defmod Regen RainTMC
setstate Regen 0.00
setstate Regen 2017-10-03 15:38:31 rainAmount 1.776
setstate Regen 2017-10-03 15:38:31 rainBegin 2017-10-03 17:55:00
setstate Regen 2017-10-03 15:38:31 rainDataEnd 2017-10-03 18:20:00
setstate Regen 2017-10-03 15:38:31 rainDataStart 2017-10-03 15:40:00
setstate Regen 2017-10-03 15:38:31 rainEnd 2017-10-03 18:20:00
setstate Regen 2017-10-03 15:38:31 rainLaMetric 0,0,0,0,0,0,0,0,0,0,0,0
setstate Regen 2017-10-03 15:38:31 rainMax 0.562
setstate Regen 2017-10-03 15:38:31 rainNow 0
setstate Regen 2017-10-03 15:38:31 rainTotal 1.776


Zitat von: LuBeDa am 03 Oktober 2017, 14:14:06
Damit ich mir auch eine LaMetric leisten kann ;), hier mein Spenden-Link https://paypal.me/lubeda
Ludger
Warte einfach auf den Amazon Black Friday 2018. Du sparst Dir dann wahrscheinlich 60 Euro, da die Uhr bei Amazon immer wieder im Angebot ist.

Manfred

LuBeDa

rainLaMetric zeigt den Regen der in den nächsten 12*5 Minuten kommt an. Der Regen bei dir kommt erst um 17:55 liegt also noch außehalb des Anzeigebereichs.

Mehr als 12 Datenpunkte wollte ich nicht einbauen weil nicht feststeht das ich immer 18 oder mehr Werte zum Anzeigen habe.




mrbreil

Also das raintmc liefert mir werde, Danke. Jetzt suche ich noch eine Möglichkeit mir die Vorhersage als Bild zuschicken zu lassen. Wie bekomme ich den code aus {RainTMC_PNG("R")} in eine Bilddatei, die ich per Telegram verschicken kann?

Gruß Christian

ares

Zitat von: LuBeDa am 03 Oktober 2017, 16:25:22
rainLaMetric zeigt den Regen der in den nächsten 12*5 Minuten kommt an. Der Regen bei dir kommt erst um 17:55 liegt also noch außehalb des Anzeigebereichs.

Mehr als 12 Datenpunkte wollte ich nicht einbauen weil nicht feststeht das ich immer 18 oder mehr Werte zum Anzeigen habe.

Stimmt, das hatte ich übersehen. Sorry.
Leider blieb der Regen aus, so dass weitere Tests erst einmal ausfallen. Ich bin aber auch nicht wirklich traurig, wenn es nicht regnet.

LuBeDa

#71
Zitat von: mrbreil am 04 Oktober 2017, 15:48:03
Jetzt suche ich noch eine Möglichkeit mir die Vorhersage als Bild zuschicken zu lassen. Wie bekomme ich den code aus {RainTMC_PNG("R")} in eine Bilddatei, die ich per Telegram verschicken kann?

Da kenne ich leider keine Möglichkeit   :(

Die *_PNG Funktion erzeugt mit Javascript zur Laufzeit ein PNG Bild im Browser. Es gibt also nicht wirklich eine Datei die man versenden kann.

Das Script kann man sich anzeigen lassen indem man {Buienradar_PNG("BR")} in die "Eingabeaufforderung" von FHEM eingibt.

<div id="chart_div_BR"; style="width:100%; height:100%"></div>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">

     google.charts.load("current", {packages:["corechart"]});
      google.charts.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['string', 'mm/m² per h'],
['17:35',0.000],['',0.000],['17:45',0.000],['',0.000],['17:55',0.000],['',0.000],['18:05',0.000],['',0.000],['18:15',0.000],['',0.000],['18:25',0.000],['',0.000],['18:35',0.005],['',0.000],['18:45',0.005],['',0.005],['18:55',0.005],['',0.000],['19:05',0.000],['',0.000],['19:15',0.000],['',0.005],['19:25',0.000],['',0.000]]);

var options = {
          title: 'Niederschlag',
subtitle: 'Vorhersage (BR)',          hAxis: {slantedText:true, slantedTextAngle:45,
              textStyle: {
              fontSize: 10}
              },
          vAxis: {minValue: 0}
        };

        var my_div = document.getElementById(
"chart_div_BR");        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>



Auf dem Handy nutze ich die kostenlose Version der App "RainToday".

Ludger

Jamo

Hallo Ludger,
wenn ich, wie in deinem ersten Post,
{RainTMC_HTML(<DEVICE>,<Pixel>)} also z.B. {RainTMC_HTML("Wetterradar",500)}setze, bekomme ich folgende Fehlermeldung.
ERROR evaluating {RainTMC_HTML("Wetterradar",500)}: Too many arguments for main::RainTMC_HTML at (eval 11121) line 1, near "500)"
Was mache ich falsch?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

ares

#73
Jetzt regnet es endlich bei mir und auch in RainTMC. Aber mit jedem Refresh wechselt er reproduzierbar rainBegin zwischen 16:50 und 16:30 hin und her!?! Auf http://meteoradar.co.uk zeigt er "rain from 16:45" an, das kann aber auch am dort eingestellten Radius "2" liegen, den ich in RainTMC leider (noch) nicht setzen kann.

LuBeDa

Zitat von: inoma am 04 Oktober 2017, 22:36:16
Was mache ich falsch?

Bei Buienradar_HTML kann man einen optionale Breite mit angeben. Bei RainTMC_HTML geht das nicht. Sollte eigentlich jeweils auch  so in der Commandref der Befehle stehen.
Ich habe mail einen Screenshot der beiden Ausgaben angehanden, dann wird klar warum man das bei RainTMC nicht braucht.

Ludger