Push-Nachricht bei Änderungen eines Readings in verschiedenen Geräten

Begonnen von TomTaa, 30 Mai 2020, 19:11:41

Vorheriges Thema - Nächstes Thema

TomTaa

Hallo,
beim Programmieren bin ich blutiger Anfänger, daher bitte ich vorab schon mal um Entschuldigung.

Ich suche nach einer Möglichkeit, über Änderungen (Hier geht es um Informationan aus einem Kalender, ist aber kein Google-Kalder oder so) auf einer Website (per Push) hingewiesen zu werden.
Habe schon per HTTPMOD mit die entsprechenden Informationen in ein Gerät gespeichert. Genauer gesagt habe ich nun für jeden Tag ein Gerät mit jeweils identischen Readings.
Das erste Reading heisst "9Uhr", das andere heisst "12Uhr". Der Wert dahinter ist jeweils ein Text.
Wenn sich nun auf irgendeinem der ca. 100 Geräte einer dieser Werte ändert, möchte ich eine Information bekommen.

Mein erster Ansatz war, dass ich das Attribut "event-on-change-eading .*" setze, aber irgendwie taucht da immer die aktuellste Zeit auf. Sonst hätte ich ggf. über ein ReadingsGroups eine übersicht gemacht, aber wie weiter hätte ich dann auch nicht gewusst.

Nun ist meine Idee, jeweis den aktuellen Wert als Alten wert in ein Reading zu schreiben und dann mit dem aktuellen Wert zu vergleichen. Bei einem einzelnen Geräte würde ich das sicherlich irgendwie auch hinbekommen. Aber bei der hohen Anzahl der Geräte muss das dann irgendwie automatisiert gehen.
Die Geräte fangen alle mit dem gleichen Namen an, unterscheiden sich dann irgendwo hinten durch das Datum.

Hat da jemand eine Idee oder einen Tipp?   

amenomade

Ohje. Dann würde ich eher dein Konstrukt mit 100 Devices umbauen. Du hast wirklich 100 HTTPMODs? Geht das nicht mit nur einem?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TomTaa

Wie gesagt, ich bin kein Experte auch nicht mit HTTPMOD.
Aber die Website aht eine URL für jeden Tag, wo ich halt zwei Werte auslese.
   
https://xxxxxxxx.de/yyyyyy/zzzz.php?date=08.07.2020&aaaaa
https://xxxxxxxx.de/yyyyyy/zzzz.php?date=09.07.2020&aaaaa

So sieht die url aus.
Wenn ich das alles in einem Gerät machen kann, dann mache ich das gerne; sofern ich dann die Auswertung einfacher machen kann.

amenomade

Sowas kannst Du bestimmt in einem einzigen HTTPMOD zusammenfassen.

define name HTTPMOD none 86400
attr name replacement01Regex %%date%%
attr name replacement01Mode expression
attr getURL https://xxxxxxxx.de/yyyyyy/zzzz.php?date=%%date%%&aaaaa
attr name get01Replacement01Value {strftime("%d.%m.%Y", localtime( time))}
attr name get01Poll 1
attr name get01Regex <hier muss man wissen, was Du im Moment in deinen 100 HTTPMOD für ein Regex hast>
attr name get02Replacement01Value {strftime("%d.%m.%Y", localtime(time + 86400))}
attr name get02Poll 1
attr name get03Replacement01Value {strftime("%d.%m.%Y", localtime( time + 2*86400))}
attr name get03Poll 1
attr name get04Replacement01Value {strftime("%d.%m.%Y", localtime( time + *86400))}
attr name get04Poll 1
...

Bei den getNNRegex kann man eine Regex nutzen, um beiden Werte gleichzeitig zu extrahieren, z.B.
get01Regex blabla(?<day01-9>wert)blablabla(?<day01-12>wert)      #extrahiert beide Readings day01-9 und day01-12
get02Regex blabla(?<day02-9>wert)blablabla(?<day02-12>wert)
get03Regex blabla(?<day03-9>wert)blablabla(?<day03-12>wert)


EDIT: Korrektur Datumformat
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TomTaa

Vielen Dank erst mal, das werde ich dann mal ausprobieren.

Meine Regex sehen im Moment so aus:

readingsRegex_12Uhr:   <td>12:00</td><td>(.*)</td><td> </td>
readingsRegex_9Uhr:     <td>09:15</td><td>(.*)</td><td> </td>

Und im Moment ziehe ich mir dann noch das Datum und den Wochentag dazu; brauche ich eigentlich nicht.
readingsRegex_WeekDay:      <h2 class="form-login-heading">Zeit auswählen<br>(.*)-
readingsRegex_date:             <input type="hidden" id='' name="datum" value='(.*)' >


Wie könnte denn dann der grundsätzliche Ansatz sein, um dann die Änderungen zu ermitteln?

amenomade

und in welcher Reihenfolge stehen die 4 Werte in der Seite?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TomTaa

Im Moment ist die Reihenfolge

1) Weekday  Hier wäre dahinter noch das Datum abgreifbar (kann ich aber nicht, da der Wochentag ja nicht fix ist)  <h2 class="form-login-heading">Zeit auswählen<br> Samstag - 30.05.2020 .......
2) 9Uhr
3) 12 Uhr
4) Date

amenomade

Dann etwas wie
get01Regex (?s)Zeit auswählen<br>.(?<Tag01WochenTag>.[A-Za-z]+).-.(?<Tag01Datum>[0-9\.]{10}).*?<td>09:15<\/td><td>(?<Tag01_9Uhr>.*?)<\/td>.*?<td>12:00<\/td><td>(?<Tag01_12Uhr>.*?)<\/td>
Sollte Tag01Wochentag, Tag01Datum, Tag01_9Uhr und Tag01_12Uhr extrahieren

Genauso machst Du die andere:
get02Regex (?s)Zeit auswählen<br>.(?<Tag02WochenTag>.[A-Za-z]+).-.(?<Tag02Datum>[0-9\.]{10}).*?<td>09:15<\/td><td>(?<Tag02_9Uhr>.*?)<\/td>.*?<td>12:00<\/td><td>(?<Tag02_12Uhr>.*?)<\/td>
get03Regex (?s)Zeit auswählen<br>.(?<Tag03WochenTag>.[A-Za-z]+).-.(?<Tag03Datum>[0-9\.]{10}).*?<td>09:15<\/td><td>(?<Tag03_9Uhr>.*?)<\/td>.*?<td>12:00<\/td><td>(?<Tag03_12Uhr>.*?)<\/td>
...


Mach aber zuerst Tests mit den 2 oder 3 ersten, und nicht mit 100. Weil er letztendlich 100 Http Aufrufe machen wird.

Vielleicht sagst Du mir noch (evtl. in PN) wie die Webseite xxxxxxxx.de heisst. Ich könnte besser sehen, und auch testen.

EDIT: Korrektur [A-Za-z]+

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TomTaa

Habe mal versucht, nach dem Vorschlag das Device anzulegen:


defmod GeoTest HTTPMOD none 600
attr GeoTest userattr get01Poll:0,1 get01Regex get01Replacement01Value get02Poll:0,1 get02Regex get02Replacement01Value getURL replacement01Mode:reading,internal,text,expression,key replacement01Regex
attr GeoTest DbLogExclude .*
attr GeoTest get01Poll 1
attr GeoTest get01Regex (?s)Zeit auswählen<br>.(?<Tag01WochenTag>.[A-Za-z]+).-.(?<Tag01Datum>[0-9\.]{10}).*?<td>09:15<\/td><td>(?<Tag01_9Uhr>.*?)<\/td>.*?<td>12:00<\/td><td>(?<Tag01_12Uhr>.*?)<\/td>
attr GeoTest get01Replacement01Value {strftime("%d.%m.%Y", localtime( time))}
attr GeoTest get02Poll 1
attr GeoTest get02Regex (?s)Zeit auswählen<br>.(?<Tag01WochenTag>.[A-Za-z]+).-.(?<Tag01Datum>[0-9\.]{10}).*?<td>09:15<\/td><td>(?<Tag01_9Uhr>.*?)<\/td>.*?<td>12:00<\/td><td>(?<Tag01_12Uhr>.*?)<\/td>
attr GeoTest get02Replacement01Value {strftime("%d.%m.%Y", localtime(time + 86400))}
attr GeoTest getURL https://geocache-planer.de/CAL/anmeldung.php?date=%%date%%&CALID=ASCHYBY
attr GeoTest replacement01Mode expression
attr GeoTest replacement01Regex %%date%%


Hoffe, ich habe das soweit richtig übernommen.
War mir unsicher mit dem getURL, ob das als Arrtibut dieses Device angelegt werden muss?
Wenn ich das einfüge als


attr getURL https://geocache-planer.de/CAL/anmeldung.php?date=%%date%%&CALID=ASCHYBY


bekomme ich eine Fehlermeldung
getURL: bad attribute name 'https://geocache-planer.de/CAL/anmeldung.php?date=%%date%%&CALID=ASCHYBY' (allowed chars: A-Za-z/\d_\.-)

Ich bekomme aber keine Ergebnisse, also keine Readings.
Auch im Event-Monitor kommen keinerlei Meldungen zu diesem Device


amenomade

Ja, es heisst attr GeoTest getURL https://...
"name" bzw GeoTest hatte ich vergessen

Der Entwickler der Webseite bietet auch eine API an. Die Daten werden dann direkt als JSON zurückgeliefert. Es wäre vielleicht einfacher. Und für die Webseite besser, weil sonst machst Du 100 Abfragen nach und nach. Mit der API kann man vielleicht alles auf einmal bekommen (ich habe nicht in Details geguckt)
ZitatDen API Zugangsschlüssel erhaltet Ihr auf Anfrage von mir.

Hier, was bei mir funktioniert:
defmod GeoTest HTTPMOD none 600
attr GeoTest enableControlSet 1
attr GeoTest get01Name Tag01
attr GeoTest get01Poll 1
attr GeoTest get01Regex (?s)Zeit auswählen<br>(?<Tag01_WochenTag>[A-Za-z]+).-.(?<Tag01_Datum>[0-9\.]{10}).*?<td>09:15<\/td><td>(?<Tag01_09Uhr>.*?)<\/td>.*?<td>12:15<\/td><td>(?<Tag01_12Uhr>.*?)<\/td>
attr GeoTest get01Replacement01Value {strftime("%d.%m.%Y", localtime( time))}
attr GeoTest get02Name Tag02
attr GeoTest get02Poll 1
attr GeoTest get02Regex (?s)Zeit auswählen<br>(?<Tag02_WochenTag>[A-Za-z]+).-.(?<Tag02_Datum>[0-9\.]{10}).*?<td>09:15<\/td><td>(?<Tag02_09Uhr>.*?)<\/td>.*?<td>12:15<\/td><td>(?<Tag02_12Uhr>.*?)<\/td>
attr GeoTest get02Replacement01Value {strftime("%d.%m.%Y", localtime(time + 86400))}
attr GeoTest get03Name Tag03
attr GeoTest get03Poll 1
attr GeoTest get03Regex (?s)Zeit auswählen<br>(?<Tag03_WochenTag>[A-Za-z]+).-.(?<Tag03_Datum>[0-9\.]{10}).*?<td>09:15<\/td><td>(?<Tag03_09Uhr>.*?)<\/td>.*?<td>12:15<\/td><td>(?<Tag03_12Uhr>.*?)<\/td>
attr GeoTest get03Replacement01Value {strftime("%d.%m.%Y", localtime( time + 2*86400))}
attr GeoTest get04Name Tag04
attr GeoTest get04Poll 1
attr GeoTest get04Regex (?s)Zeit auswählen<br>(?<Tag04_WochenTag>[A-Za-z]+).-.(?<Tag04_Datum>[0-9\.]{10}).*?<td>09:15<\/td><td>(?<Tag04_09Uhr>.*?)<\/td>.*?<td>12:15<\/td><td>(?<Tag04_12Uhr>.*?)<\/td>
attr GeoTest get04Replacement01Value {strftime("%d.%m.%Y", localtime( time + 3*86400))}
attr GeoTest get05Name Tag05
attr GeoTest get05Poll 1
attr GeoTest get05Regex (?s)Zeit auswählen<br>(?<Tag05_WochenTag>[A-Za-z]+).-.(?<Tag05_Datum>[0-9\.]{10}).*?<td>09:15<\/td><td>(?<Tag05_09Uhr>.*?)<\/td>.*?<td>12:15<\/td><td>(?<Tag05_12Uhr>.*?)<\/td>
attr GeoTest get05Replacement01Value {strftime("%d.%m.%Y", localtime( time + 4*86400))}
attr GeoTest get06Name Tag06
attr GeoTest get06Poll 1
attr GeoTest get06Regex (?s)Zeit auswählen<br>(?<Tag06_WochenTag>[A-Za-z]+).-.(?<Tag06_Datum>[0-9\.]{10}).*?<td>09:15<\/td><td>(?<Tag06_09Uhr>.*?)<\/td>.*?<td>12:15<\/td><td>(?<Tag06_12Uhr>.*?)<\/td>
attr GeoTest get06Replacement01Value {strftime("%d.%m.%Y", localtime( time + 5*86400))}
attr GeoTest getURL https://geocache-planer.de/CAL/anmeldung.php?date=%%date%%&CALID=ASCHYBY
attr GeoTest replacement01Mode expression
attr GeoTest replacement01Regex %%date%%

- kleine Korrekturen in der Regex
- anscheinend, werden die getXX nicht gepollt wenn keine Name, deswegen jetzt die getXXName Attribute. Die werden aber nicht benutzt, um die Readings zu setzen.

Bitte beachten: die Namen der Readings sind in der Regex enthalten. Die musst Du natürlich  entspr. anpassen, wenn Du kopierst: Tag01 ->Tag02->Tag03 usw sonst überscheibst Du immer die erste Readings.

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Vielversprechend ist aber die Seite index3.php: mit einem POST mit Parameter 1.Tag eines Monats, kriegt man auf einmal ALLE Buchungen des Monats.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Zitat von: amenomade am 01 Juni 2020, 01:05:22
Vielversprechend ist aber die Seite index3.php: mit einem POST mit Parameter 1.Tag eines Monats, kriegt man auf einmal ALLE Buchungen des Monats.
Beispiel:
defmod GeoTest2 HTTPMOD https://geocache-planer.de/CAL/index3.php 600
attr GeoTest2 get02AutoNumLen 2
attr GeoTest2 get02Data datum=%%data%%&CALID=ASCHYBY
attr GeoTest2 get02DeleteIfUnmatched 1
attr GeoTest2 get02Name NextMonth
attr GeoTest2 get02OExpr {my $status = substr($val, -1);; my $ret = substr($val, 0, 8)." - ";; return $ret."ausgebucht" if ($status == 3);; return $ret."frei"}
attr GeoTest2 get02Poll 1
attr GeoTest2 get02RegOpt g
attr GeoTest2 get02Regex (?s)([0-3][0-9]\.[0-1][0-9]\.2[0-9]\/{3}[1-3])
attr GeoTest2 get02Replacement01Value {my ($sec,$min,$hour,$mday,$mon,$year) = localtime( time);;$mon +=2;; $mon = 1 if ($mon==13);; return sprintf("%02d.%02d.%02d",1,$mon,$year+1900)}
attr GeoTest2 get03AutoNumLen 2
attr GeoTest2 get03Data datum=%%data%%&CALID=ASCHYBY
attr GeoTest2 get03DeleteIfUnmatched 1
attr GeoTest2 get03Name NextNextMonth
attr GeoTest2 get03OExpr {my $status = substr($val, -1);; my $ret = substr($val, 0, 8)." - ";; return $ret."ausgebucht" if ($status == 3);; return $ret."frei"}
attr GeoTest2 get03Poll 1
attr GeoTest2 get03RegOpt g
attr GeoTest2 get03Regex (?s)([0-3][0-9]\.[0-1][0-9]\.2[0-9]\/{3}[1-3])
attr GeoTest2 get03Replacement01Value {my ($sec,$min,$hour,$mday,$mon,$year) = localtime( time);;$mon +=3;; $mon = 1 if ($mon==13);; return sprintf("%02d.%02d.%02d",1,$mon,$year+1900)}
attr GeoTest2 reading01AutoNumLen 2
attr GeoTest2 reading01DeleteIfUnmatched 1
attr GeoTest2 reading01Name Datum
attr GeoTest2 reading01OExpr {my $status = substr($val, -1);; my $ret = substr($val, 0, 8)." - ";; return $ret."ausgebucht" if ($status == 3);; return $ret."frei"}
attr GeoTest2 reading01RegOpt g
attr GeoTest2 reading01Regex (?s)([0-3][0-9]\.[0-1][0-9]\.2[0-9]\/{3}[1-3])
attr GeoTest2 replacement01Mode expression
attr GeoTest2 replacement01Regex %%data%%
attr GeoTest2 replacement01Value {strftime("%d.%m.%Y", localtime( time))}
attr GeoTest2 requestData datum=%%data%%&CALID=ASCHYBY


Mit einem vollen Kalender:
   READINGS:
     2020-06-01 02:37:33   Datum-01        01.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-02        02.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-03        03.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-04        04.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-05        05.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-06        06.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-07        07.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-08        08.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-09        09.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-10        10.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-11        11.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-12        12.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-13        13.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-14        14.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-15        15.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-16        16.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-17        17.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-18        18.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-19        19.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-20        20.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-21        21.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-22        22.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-23        23.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-24        24.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-25        25.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-26        26.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-27        27.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-28        28.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-29        29.06.20 - ausgebucht
     2020-06-01 02:37:33   Datum-30        30.06.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-01    01.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-02    02.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-03    03.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-04    04.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-05    05.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-06    06.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-07    07.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-08    08.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-09    09.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-10    10.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-11    11.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-12    12.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-13    13.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-14    14.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-15    15.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-16    16.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-17    17.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-18    18.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-19    19.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-20    20.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-21    21.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-22    22.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-23    23.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-24    24.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-25    25.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-26    26.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-27    27.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-28    28.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-29    29.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-30    30.07.20 - ausgebucht
     2020-06-01 02:37:33   NextMonth-31    31.07.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-01 01.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-02 02.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-03 03.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-04 04.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-05 05.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-06 06.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-07 07.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-08 08.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-09 09.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-10 10.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-11 11.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-12 12.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-13 13.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-14 14.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-15 15.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-16 16.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-17 17.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-18 18.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-19 19.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-20 20.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-21 21.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-22 22.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-23 23.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-24 24.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-25 25.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-26 26.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-27 27.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-28 28.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-29 29.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-30 30.08.20 - ausgebucht
     2020-06-01 02:37:34   NextNextMonth-31 31.08.20 - ausgebucht


Mit einem wo es noch Platz gibt (ATQPFNF):
   READINGS:
     2020-06-01 02:40:27   Datum-01        01.06.20 - frei
     2020-06-01 02:40:27   Datum-02        02.06.20 - frei
     2020-06-01 02:40:27   Datum-03        03.06.20 - frei
     2020-06-01 02:40:27   Datum-04        04.06.20 - frei
     2020-06-01 02:40:27   Datum-05        05.06.20 - frei
     2020-06-01 02:40:27   Datum-06        06.06.20 - frei
     2020-06-01 02:40:27   Datum-07        07.06.20 - frei
     2020-06-01 02:40:27   Datum-08        08.06.20 - frei
     2020-06-01 02:40:27   Datum-09        09.06.20 - frei
     2020-06-01 02:40:27   Datum-10        10.06.20 - frei
     2020-06-01 02:40:27   Datum-11        11.06.20 - frei
     2020-06-01 02:40:27   Datum-12        12.06.20 - frei
     2020-06-01 02:40:27   Datum-13        13.06.20 - frei
     2020-06-01 02:40:27   Datum-14        14.06.20 - frei
     2020-06-01 02:40:27   Datum-15        15.06.20 - frei
     2020-06-01 02:40:27   Datum-16        16.06.20 - frei
     2020-06-01 02:40:27   Datum-17        17.06.20 - frei
     2020-06-01 02:40:27   Datum-18        18.06.20 - frei
     2020-06-01 02:40:27   Datum-19        19.06.20 - frei
     2020-06-01 02:40:27   Datum-20        20.06.20 - frei
     2020-06-01 02:40:27   Datum-21        21.06.20 - frei
     2020-06-01 02:40:27   Datum-22        22.06.20 - frei
     2020-06-01 02:40:27   Datum-23        23.06.20 - frei
     2020-06-01 02:40:27   Datum-24        24.06.20 - frei
     2020-06-01 02:40:27   Datum-25        25.06.20 - frei
     2020-06-01 02:40:27   Datum-26        26.06.20 - frei
     2020-06-01 02:40:27   Datum-27        27.06.20 - frei
     2020-06-01 02:40:27   Datum-28        28.06.20 - frei
     2020-06-01 02:40:27   Datum-29        29.06.20 - frei
     2020-06-01 02:40:27   Datum-30        30.06.20 - frei
     2020-06-01 02:40:27   NextMonth-01    01.07.20 - frei
     2020-06-01 02:40:27   NextMonth-02    02.07.20 - frei
     2020-06-01 02:40:27   NextMonth-03    03.07.20 - frei
     2020-06-01 02:40:27   NextMonth-04    04.07.20 - frei
     2020-06-01 02:40:27   NextMonth-05    05.07.20 - frei
     2020-06-01 02:40:27   NextMonth-06    06.07.20 - frei
     2020-06-01 02:40:27   NextMonth-07    07.07.20 - frei
     2020-06-01 02:40:27   NextMonth-08    08.07.20 - frei
     2020-06-01 02:40:27   NextMonth-09    09.07.20 - frei
     2020-06-01 02:40:27   NextMonth-10    10.07.20 - frei
     2020-06-01 02:40:27   NextMonth-11    11.07.20 - frei
     2020-06-01 02:40:27   NextMonth-12    12.07.20 - frei
     2020-06-01 02:40:27   NextMonth-13    13.07.20 - frei
     2020-06-01 02:40:27   NextMonth-14    14.07.20 - frei
     2020-06-01 02:40:27   NextMonth-15    15.07.20 - frei
     2020-06-01 02:40:27   NextMonth-16    16.07.20 - frei
     2020-06-01 02:40:27   NextMonth-17    17.07.20 - frei
     2020-06-01 02:40:27   NextMonth-18    18.07.20 - frei
     2020-06-01 02:40:27   NextMonth-19    19.07.20 - frei
     2020-06-01 02:40:27   NextMonth-20    20.07.20 - frei
     2020-06-01 02:40:27   NextMonth-21    21.07.20 - frei
     2020-06-01 02:40:27   NextMonth-22    22.07.20 - frei
     2020-06-01 02:40:27   NextMonth-23    23.07.20 - frei
     2020-06-01 02:40:27   NextMonth-24    24.07.20 - frei
     2020-06-01 02:40:27   NextMonth-25    25.07.20 - frei
     2020-06-01 02:40:27   NextMonth-26    26.07.20 - frei
     2020-06-01 02:40:27   NextMonth-27    27.07.20 - frei
     2020-06-01 02:40:27   NextMonth-28    28.07.20 - frei
     2020-06-01 02:40:27   NextMonth-29    29.07.20 - frei
     2020-06-01 02:40:27   NextMonth-30    30.07.20 - frei
     2020-06-01 02:40:27   NextMonth-31    31.07.20 - frei
     2020-06-01 02:40:27   NextNextMonth-01 01.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-02 02.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-03 03.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-04 04.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-05 05.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-06 06.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-07 07.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-08 08.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-09 09.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-10 10.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-11 11.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-12 12.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-13 13.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-14 14.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-15 15.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-16 16.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-17 17.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-18 18.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-19 19.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-20 20.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-21 21.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-22 22.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-23 23.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-24 24.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-25 25.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-26 26.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-27 27.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-28 28.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-29 29.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-30 30.08.20 - frei
     2020-06-01 02:40:27   NextNextMonth-31 31.08.20 - frei


Damit ist ein notify/DOIF für einen Push relativ einfach zu basteln.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TomTaa


heikoxxxx

Hey hey,
also wenn du mit dem Planer arbeiten magst einfach eine kurze Nachricht an mich da ich der Betreiber der Plattform bin und dir die api Daten gerne zusenden kann. Eine Doku findest du auf der Homepage von mir.

Falls du damit dann irgendwelche Aktoren steuern magst habe ich auch einiges schon fertig, allerdings ohne fhem.

Fhem benutze ich selbst für meine Steuerung aber nicht fürs geocaching 😊

Gisbert

Zitat von: heikoxxxx am 09 Juli 2020, 20:46:36
Hey hey,
also wenn du mit dem Planer arbeiten magst einfach eine kurze Nachricht an mich da ich der Betreiber der Plattform bin und dir die api Daten gerne zusenden kann. Eine Doku findest du auf der Homepage von mir.

Falls du damit dann irgendwelche Aktoren steuern magst habe ich auch einiges schon fertig, allerdings ohne fhem.

Fhem benutze ich selbst für meine Steuerung aber nicht fürs geocaching 😊

Hallo Heiko,
du sprichst in Rätseln, oder versteht sonst jemand, worum es hier geht?
Dann bitte in jedem Fall um Aufklärung, damit andere wie ich auch partizipieren können.

Vielen Dank und viele Grüße
Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY