7 Tage Pollenflugvorhersage - 60_allergy.pm (Support)

Begonnen von Markus M., 15 Mai 2015, 15:00:31

Vorheriges Thema - Nächstes Thema

persching

@Markus M.: ich weiß nicht ob das mit fc1...fc7 etwas bringt. Beim Wetter ist in den Readings auch der Wert fc1_day_of_week, also der Tag explizit angegeben. Wie man nur von der Nummerierung auf den Tag kommt weiß ich nicht... Also ich weiß nicht wie man das in Code umsetzen kann.

JoWiemann

#16
Hallo,

vielen Dank für das Modul.

Ich habe eine veränderte Version angehangen, in der ein paar Fehler korrigiert sind und die Wochentage als Readings anstatt day(n) implementiert sind.

Ein gemeinder Fehler war in Zeile 74 in der allergy_GetData aufgerufen wird, die es nicht gibt:

Mist, habe noch mal auf den ersten Post geschaut und gesehen, dass dieser Fehler schon korrigiert war.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Michael

#17
Moin

Einen Wunsch hätte ich noch, ein get <device> clear

Eine Frage habe auch noch.
Ist es denn wirklich so das day0, day1, ... der Montag, Dienstag ist, und nicht Heute, Morgen, ...?

Edit
Wenn ich mir den Screen der APP auf deren HP ansehen, ist da Heute, Morgen zu Sehen.
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

persching

Ich hätte es auch so verstanden, dass day_0 heute ist, day_1 dann morgen usw. Aber wie kann man das verifizieren?

JoWiemann

Hallo,

wenn man das XML-File gegen die Anzeige der Webseite verifiziert, dann ist day0 Heute, day1 Morgen usw. So habe ich es dann auch umgesetzt.

Grüße Jörg.
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Michael

#20
@JoWiemann

Dann verwirren so aber die Tage. (sh. Anhang)
Wären dann nicht die Readings in dieser Reihenfolge (Heute, Morgen, ... ) nicht Sinnvoll?

Oder ist da bei mir was nicht in Ordnung, bekomme auch nur fünf Angezeigt.
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

JoWiemann

Hallo Michael,

ich habe einfach nur $daycode durch einen Zugriff auf ein Array ersetzt. Das Modul ignoriert übrigens alle Allergene, die in der XML Liste ein "pollen belastung="0"" haben.

Grüße Jörg

PS: Was ich noch machen könnte ist, das Wochentags-Array über ein Attribut konfigurierbar zu machen. Dann würde halt auch Morgen, Übermorgen, und wie auch immer gehen.
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Michael

Hallo Jörg

Bitte nicht falsch Verstehen, ich will nicht Meckern.
Wenn ich so was Erstellen könnte wäre ich froh.
Bin halt nur etwas mit VBA unterwegs.  ::)
Finde das Modul SUPER:)

Aber das mit den Wochentagen finde ich so nicht gelungen.
Die wären als extra Reading besser aufgehoben, auch wenn die Liste (um sieben) größer wird.

ZitatDas Modul ignoriert übrigens alle Allergene, die in der XML Liste ein "pollen belastung="0"" haben.
Das würde dem Nutzer als Attribut an bieten. ( attr <device> 0|1)

Ich bin erstmal auf deine erste Version zurück Gegangen.
Gefällt mir besser, universeller. (sh. Anhang / mein InfoPanel)

Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Elektrolurch

Hallo,

define Allergie allergy 12345

führt im log zu:

2015.05.16 19:52:31 1: reload: Error:Modul 60_allergy deactivated:
Type of arg 1 to each must be hash or array (not private variable) at ./FHEM/60_allergy.pm line 174, near "$pollenhash)"

2015.05.16 19:52:31 0: Type of arg 1 to each must be hash or array (not private variable) at ./FHEM/60_allergy.pm line 174, near "$pollenhash)"


debian perl....

und auf der fhem - Seite steht dann:

cannot load Module 60-allergy.pm

Elektrolurch


configDB und Windows befreite Zone!

Markus M.

Ok, ich setze mich nochmal dran.
Als Prefix nehme ich fcn_ wie beim Wetter, hier mit 1-7 und zusätzlich ein Reading für den Wochentag.

Zu clear und leeren Readings: Alles was leer oder ignoriert ist, wird eigentlich bereits automatisch gelöscht wenn man den Filter verwendet und das Flag alles anzuzeigen nicht gesetzt hat.



Zitat von: Elektrolurch am 16 Mai 2015, 19:57:12
define Allergie allergy 12345

führt im log zu:
2015.05.16 19:52:31 1: reload: Error:Modul 60_allergy deactivated:
Type of arg 1 to each must be hash or array (not private variable) at ./FHEM/60_allergy.pm line 174, near "$pollenhash)"

2015.05.16 19:52:31 0: Type of arg 1 to each must be hash or array (not private variable) at ./FHEM/60_allergy.pm line 174, near "$pollenhash)"

Werde ich mal testen, Danke.

Markus
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

JoWiemann

Hallo Markus,

dann ziehe ich meine Idee erst einmal wieder zurück.

Grüße Jörg

PS: Ein Hinweis:

Der Zugriff auf Attribute über
if($attr{$name}{disabled} eq 1)
führt zu einem Fehler, wenn das Attribut nicht gesetzt ist. Besser ist
  if(AttrVal($name, "disabled", 0) eq 1) {
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

persching

Ich versuche mich gerade an der Readingsgroup, aber das funktioniert nicht so wie ich das gerne hätte.... erstens stehen als Zeilennamen nicht die Allergene, und zweitens hätte ich gerne dass die Worte "low" "moderate" und "high" gegen die Punkte grün, gelb und rot ersetzt werden. Aber man kann bei valueicon kann man wohl keine Platzhalter verwenden (z.B. *.low). Kennt hier jemand eine bessere Möglichkeit die Daten darzustellen??

(http://www.fotos-hochladen.net/uploads/pollenreadingsa3bph4tvoe.png)

Markus M.

Neue Version:
- Prefix wie beim Wettermodul mit fc1..fc7, Tageswert als fcn_maximum
- Leere und ignorierte Werte können getrennt gewählt werden mit updateEmpty und updateIgnored
- Wochentage fcn_day_of_week in den Readings sind über das Attribut weekdaysFormat lokalisierbar
- Readings sind über das Attribut readingsFormat lokalisierbar

Das Modul hat auch eine Doku, nur mal so als Hinweis ;)

Bugs:
- Fehler bei manchen Perl Versionen
- UTF-8 Probleme

Die Problemstellen sind beide hier:
    foreach my $pollenhash (@daydata)
    {
      while(($pollenkey, $pollenvalue) = each($pollenhash)) # <-   das muss anders aussehen
      {
        $pollenname = Encode::encode('UTF-8',$pollenkey); # <- funktioniert nicht zuverlässig
        $pollendata = $pollenvalue->{'belastung'};

Kann hier jemand Perl programmieren?

Markus
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Markus M.

Zitat von: persching am 16 Mai 2015, 21:45:04
Ich versuche mich gerade an der Readingsgroup, aber das funktioniert nicht so wie ich das gerne hätte.... erstens stehen als Zeilennamen nicht die Allergene, und zweitens hätte ich gerne dass die Worte "low" "moderate" und "high" gegen die Punkte grün, gelb und rot ersetzt werden. Aber man kann bei valueicon kann man wohl keine Platzhalter verwenden (z.B. *.low). Kennt hier jemand eine bessere Möglichkeit die Daten darzustellen??

Ich hab zwar keine Ahnung von ReadingsGroup, aber dass in den Zeilennamen nicht die Allergene stehen, müsste daran liegen dass du Pollenflug hingeschrieben hast?!
Zumindest die Readings kannst du in der neusten Version selbst verändern, das könnte dir bei den Icons weiterhelfen.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

persching

Ja, Pollenflug ist der Device name. Da kann man nicht einfach "Ampfer" hinschreiben.
Ich bin selbst noch bei den anfängen von FHEM und darum kenne ich keine andere Möglichkeit. Vielleicht ist es ja ganz einfach.