7 Tage Inzidenz - Corona konformes Smart Home

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • dj82atwork
    Smart Home'r
    • 14.12.2019
    • 57

    #1

    7 Tage Inzidenz - Corona konformes Smart Home

    Hallo,

    mal wieder ein kleines Projekt für alle, die am aktuellen Inzidenz Wert ihres jeweiligen Landkreises interessiert sind.
    Einbindung entweder per TTS und direkter Durchsage am Morgen oder per virtuelle Status:

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: IMG_20210217_133511.jpg
Ansichten: 1633
Größe: 131,2 KB
ID: 291871

    Realisiert wird das Ganze über das FHEM Plugin und ein JsonMod Objekt (! ggf. ist ein Update von FHEM notwendig). Details und Tutorials finden sich im Netz.
    Anbei noch die Einstellungen für das JsonMod Objekt:
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 1.PNG
Ansichten: 1431
Größe: 72,9 KB
ID: 291872


    Also 35 ist das neue 50 (Inzidenz) und viel Spaß beim proBIERen! ;-)

    Liebe Grüße
  • AlexAn
    Lebende Foren Legende
    • 25.08.2015
    • 4401

    #2
    Die österreichischen Version ist aber schon auf MQTT erhältlich
    AT - Covid-Zahlen pro Bezirk - LoxBerry - loxwiki
    Grüße Alex

    Kommentar

    • HIS-Loxone
      MS Profi
      • 26.08.2015
      • 552

      #3
      Die österreichische Version über Node red währe echt super

      Kommentar

      • Maruu
        LoxBus Spammer
        • 07.03.2017
        • 489

        #4
        Schaut euch mal das an: https://api.corona-zahlen.org/docs/ bzw. für die Einzelnen Landkreise das: https://api.corona-zahlen.org/docs/e...ml#districts-2
        Werde ich mir vermutlich heute Abend auch mal direkt einbinden. Geht sowohl mit http wie auch mit https, gerade mit Postman getestet.

        Gruß Hannes

        Kommentar


        • Miep Miep
          Miep Miep kommentierte
          Kommentar bearbeiten
          Das wäre cool 😎
      • crasythom
        LoxBus Spammer
        • 02.10.2015
        • 299

        #5
        Hier auch noch was zum Thema.

        Corona Informationen



        Gesendet von iPhone mit Tapatalk

        Kommentar

        • Maruu
          LoxBus Spammer
          • 07.03.2017
          • 489

          #6
          Ok, zu früh gefreut. Die Endpunkte von https://api.corona-zahlen.org/docs/ laufen nur mit https. Postman scheint http automatisch auf https umzuleiten, wenn der Server das anmeckert.
          Alle MS Gen 1 User (wie ich) sind damit raus. Ich hab mal ein Feature Request auf GitHub aufgemacht, vielleicht will ja noch jemand hochvoten https://github.com/marlon360/rki-covid-api/issues/102

          Für alle MS Gen 2 User sollte es aber kein Problem sein. Je Statistik einen Virtuellen Eingang erstellen, für Deutschland wäre es diese URL: https://api.corona-zahlen.org/germany für einen bestimmten Landkreis diese URL http://api.corona-zahlen.org/districts/08117 . Die Zahl 08117 entspricht den ersten 5 Stellen des Gemeindeschlüssels, z. B. hier zu finden: https://www.riserid.eu/data/user_upl...l-AGS-2015.pdf
          Der Abrufzyklus sollte denke ich nicht höher als 3600 (eine Stunde) gestellt werden, die Zahlen werden ja sowieso nur 1x am Tag aktualisiert.

          Folgende JSON-Antwort kommt zurück:

          Code:
          {
              "data": {
                  "08117": {
                      "ags": "08117",
                      "name": "Göppingen",
                      "county": "LK Göppingen",
                      "state": "Baden-Württemberg",
                      "population": 258145,
                      "cases": 7102,
                      "deaths": 152,
                      "casesPerWeek": 103,
                      "deathsPerWeek": 0,
                      "stateAbbreviation": "BW",
                      "recovered": 6519,
                      "weekIncidence": 39.90005616998199,
                      "casesPer100k": 2751.166979798176,
                      "delta": {
                          "cases": 11,
                          "deaths": 1,
                          "recovered": 61
                      }
                  }
              },
              "meta": {
                  "source": "Robert Koch-Institut",
                  "contact": "Marlon Lueckert (m.lueckert@me.com)",
                  "info": "https://github.com/marlon360/rki-covid-api",
                  "lastUpdate": "2021-02-17T00:00:00.000Z",
                  "lastCheckedForUpdate": "2021-02-17T18:54:06.055Z"
              }
          }
          Unterhalb des virtuellen HTTP Eingangs legt man dann einen Virtuellen HTTP Eingang Befehl an. Je nach Wert den man auslesen will, muss man als Befehlserkennung z. B. eine der Folgenden Befehle nehmen:

          \iweekIncidence":\i\v (7 Tages Inzident)
          \icasesPerWeek":\i\v (Anzahl Infizierte innerhalb der letzten 7 Tage)
          ...

          Den Virtuellen HTTP Eingang Befehl zieht man dann in die Config auf eine Seite und das war's. Konnte es nicht testen, aber so sollte es gehen.

          Kommentar


          • marcb
            marcb kommentierte
            Kommentar bearbeiten
            Ich habe das wie vorgeschlagen mittels Virtuellem HTTP Eingang und -Befehl umgesetzt, funktioniert nach einigem Probieren mit meinem MS2:
            - die URL muss mit http:// eingegeben werden (auch wenn dann auf https:// umgeleitet wird), https:// funktioniert nicht
            - die Befehlserkennung funktioniert auch mit weekIncidence":\v (also ohne \i für text)
            - es dürfen pro Minute nur 15 Abfragen erfolgen, sonst macht der Server "zu"
            - ich hatte einen (von 4) virtuellen http Eingängen der wollte einfach keine Werte ausgeben. Dann habe ich einen neuen Eingang erstellt mit denselben Einstellungen (von dem widerspenstigen kopiert), dann hat es plötzlich funktioniert
            - Abfragezyklus habe ich auch 3600, Timeout auf 1000 runtergesetzt, Anzahl erlaubte Timeouts auf 0
        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11245

          #7
          Oder am LoxBerry per LoxBerry XL:
          PHP-Code:
          <?php
          require_once "loxberry_XL.php";
          $mqtt->publish( "corona", file_get_contents( "https://api.corona-zahlen.org/districts/08117" ) );

          Am MQTT Gateway corona/# subscriben und VIs für die Daten wie gewünscht anlegen.
          https://www.loxwiki.eu/display/LOXBE...it+LoxBerry+XL
          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

          Kommentar


          • Christian Fenzl
            Christian Fenzl kommentierte
            Kommentar bearbeiten
            ... mit dem Unterschied, dass du per LoxBerry XL/MQTT die Datenwerte pro Datensatz fixfertig aufbereitet bekommst, und auch wegschalten kannst, was du am MS nicht brauchst 🙂

          • ThatRed
            ThatRed kommentierte
            Kommentar bearbeiten
            Hallo zusammen,

            ich habe mich auch mal darangemacht und versucht die api anhand aus Christians Beispiel einzubinden. Dabei hat der Code erst funktioniert, als ich die Leerzeichen im MQTT Aufruf entfernt hatte:
            Code:
            #!/usr/bin/env php
            <?php
            require_once "loxberry_XL.php";
            
            $mqtt->publish("corona",file_get_contents("https://api.corona-zahlen.org/districts/08117"));
            $mqtt->publish("vaccinations",file_get_contents("https://api.corona-zahlen.org/vaccinations"));
            Das nächste Problem hatte ich bei "corona_data_08117_weekecidence":

            in der Beschreibung der api steht "corona_data_08117_weekecidence", im "incomming overview" steht "corona_data_08117_weekecidence" auch im Miniserver hatte ich im virtuellen Eingang "corona_data_08117_weekecidence" eingetragen, nur es wurden keine Werte angezeigt.

            Alles andere wurde, nach korrekter Eingabe der Validierung, angezeigt. Irgendwann hab ich dann ins Logfile geschaut und gesehen, das bei "INFO: MQTT received: " noch "weekecidence" ankommt, aber bei "HTTP: Preparing input" der Wert verändert wird zu "corona_data_03101_weekIncidence"!

            Weiß jemand warum? Da muss man erstmal drauf kommen...

            Gibt es eine Möglichkeit die Datenflut bei den "subscriptions" etwas einzudämmen? Meine Experimente mit "+" haben dazu geführt, das keine Werte mehr bei "incomming overview" angekommen sind. Dann habe es noch mit der Option "do not forward" versucht, aber die Funktion reagiert sehr zäh. Sobald man ein, zwei Haken gesetzt hat, verschwinden sie, um dann irgendwann wieder aufzutauchen...

            Grüße.

          • Christian Fenzl
            Christian Fenzl kommentierte
            Kommentar bearbeiten
            Bitte MQTT Gateway 2.x installieren.
            Das andere Stell ich mal nach, was da wo wie geändert wird 🙂
        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11245

          #8
          ThatRed

          Also wie gesagt, erstmal MQTT Gateway 2.x installieren.

          Bezüglich +:

          Du kannst damit nicht Daten aus einem expandierten JSON filtern, weil die sind nicht Bestandteil des MQTT Topics. Aus Sicht von MQTT ist "corona" und "
          vaccinations" ein einziges Topic, wo alle Daten als json übermittelt werden:
          Code:
          {"data":{"08117":{"ags":"08117","name":"Göppingen" ,"county":"LK Göppingen","state":"Baden-Württemberg","population":258145,"cases":10091,"de aths":186,"casesPerWeek":571,"deathsPerWeek":0,"st ateAbbreviation":"BW","recovered":8117,"weekIncide nce":221.19351527242443,"casesPer100k":3909.043367 0998855,"delta":{"cases":69,"deaths":1,"recovered" :72}}},"meta":{"source":"Robert Koch-Institut","contact":"Marlon Lueckert (m.lueckert@me.com)","info":"https://github.com/marlon360/rki-covid-api","lastUpdate":"2021-04-22T00:00:00.000Z","lastCheckedForUpdate":"2021-04-22T04:57:24.802Z"}}
          Die Expandierung dieses Datensatzes macht erst das MQTT Gateway (aus dem json wird dann z.B. corona_data_08117_cases = 10091)

          Deswegen hilft hier keine Einschränkung über die Subscription.

          Bezüglich Filtern:

          Im MQTT Gateway 2.x kannst du aber die bereits expandierten Daten per Regex filtern. Das findest du auf der Subscriptions-Seite unten.

          Für die vaccinations beispielsweise wäre folgendes Regex denkbar:
          Code:
          vaccinations_data_states_(?!BW)
          Das ist ein negativer Lookahead, im Klartext heißt das, filtere alles mit vaccinations_data_states_ und wo danach nicht "BW" kommt.

          Bei corona könntest du beispielsweise die Metadaten so filtern:
          Code:
          corona_meta_
          Bezüglich corona_data_08117_weekecidence:
          Da weiß ich nicht, was du meinst. corona_data_08117_weekecidence steht bei mir nirgends - weiß auch nicht, was das heißen soll.
          Ich sehe bei mir nur corona_data_08117_weekIncidence.

          lg, Christian
          Zuletzt geändert von Christian Fenzl; 22.04.2021, 06:28.
          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

          Kommentar

          • Christian Fenzl
            Lebende Foren Legende
            • 31.08.2015
            • 11245

            #9
            Bilder:
            Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Filter1.JPG
Ansichten: 1234
Größe: 117,1 KB
ID: 301599

            Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Filter3.JPG
Ansichten: 1221
Größe: 187,6 KB
ID: 301600

            Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Filter2.JPG
Ansichten: 1221
Größe: 138,5 KB
ID: 301601
            Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

            Kommentar

            • Christian Fenzl
              Lebende Foren Legende
              • 31.08.2015
              • 11245

              #10
              Vielleicht nochwas Interessantes für alle:

              Zum Abruf von JSON-Daten kann man seit MQTT Gateway 2.0 auf ein eigenes Script per LoxBerry XL inzwischen komplett verzichten, und das direkt mit dem MQTT Gateway machen mittels UDP Transformer: https://www.loxwiki.eu/x/GoFWBQ

              Um deine Daten zu bekommen, machst du in Loxone zwei Publishes Richtung MQTT Gateway (genauso, als würdest du z.B. mit einem Shelly reden):

              Code:
              publish http2mqtt corona https://api.corona-zahlen.org/districts/08117
              Code:
              publish http2mqtt vaccinations https://api.corona-zahlen.org/vaccinations
              Du brauchst dafür am LoxBerry sonst überhaupt nichts zu machen (kein Script, kein Cronjob usw.). Die Abrufhäufigkeit steuerst du per Trigger aus Loxone.
              Die Daten kommen genauso an wie in deinem XL-Beispiel.
              Einzig ein UTF8-Problem mit Umlauten sehe ich schon wieder - ich dachte, ich hätte das inzwischen gefixt. UTF8 geht mir echt schon auf den Zeiger

              lg, Christian
              Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

              Kommentar


              • Christian Fenzl
                Christian Fenzl kommentierte
                Kommentar bearbeiten
                Drunkard Du schickst an den falschen Port. Das Plugin hat 11884.

              • Drunkard
                Drunkard kommentierte
                Kommentar bearbeiten
                Das ist mir auch gerade noch aufgefallen. Aber auch nach der Änderung sehe ich nichts.

              • Viperdriver2000
                Viperdriver2000 kommentierte
                Kommentar bearbeiten
                Hi,
                ich probiere gerade mehrere Ansätze um die Coronazahlen wieder zu bekommen. Jetzt probiere ich noch diese hier

                Also ich habe mein VA "MQTT-Gateway-Loxberry" mit der Adresse "/dev/udp/loxberry/11884" darunter habe ich dann meinen VAB erstellt.
                Bezeichnung habe ich erstmal den default gelassen.
                Bei "Befehl bei EIN" habe ich "publish http2mqtt corona1 http://api.corona-zahlen.org/districts/12064" weil corona hatte ich schon
                in meinem MQTT GW v2.1.0 habe ich noch die Subscriptions für "corona1/#" eingestellt.

                so und ab hier hänge ich fest und weiß nicht so richtig weiter.
                ich habe mal einen "impuls um" gesetzt habe diesen an einen "trigger" gepackt und habe dann meinen VAB an den Q1 gepackt.
                Ergebnis davon ist das ich im MQTT GW sehe das es jetzt "corona1__httpstatus" gibt mit value "301".
                Also irgendwie habe ich was nicht richtig verstanden.
            • ThatRed
              Smart Home'r
              • 20.11.2015
              • 76

              #11
              Hallo Christian,

              vielen Dank für deine ausführlichen Antworten. Bei der Installation hatte ich mich für die stable Variante entschieden und werde im Anschluß mal das Pre-Release testen.

              MQTT Gateway 1.1.4:

              Zu "weekecidence"

              Wenn ich auf https://api.corona-zahlen.org/docs/e...ml#districts-2 gehst, sehe ich unter Response:

              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2021-04-24 um 06.43.35.png
Ansichten: 858
Größe: 73,1 KB
ID: 301829

              Unter "Incoming overview" in meinem Fall:

              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2021-04-24 um 06.47.54.png
Ansichten: 818
Größe: 24,2 KB
ID: 301830
              und hier noch aus dem Logfile:

              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2021-04-24 um 06.50.13.png
Ansichten: 813
Größe: 23,2 KB
ID: 301831Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2021-04-24 um 06.51.27.png
Ansichten: 827
Größe: 29,0 KB
ID: 301832

              Da wird aus "weekecidence" dann "weekIncidence" und im wiki steht ja das man die Einträge auf der "Incomming overview" Seite nehmen soll...

              Ich hoffe es wird mit den Screenshots etwas deutlicher.

              Danke.

              Kommentar

              • Christian Fenzl
                Lebende Foren Legende
                • 31.08.2015
                • 11245

                #12
                Klicke auf die Grafik für eine vergrößerte Ansicht  Name: 4E499529-9DBE-4CBE-BA5B-7D1550FD9D77.png Ansichten: 0 Größe: 130,6 KB ID: 301836
                Wenn ich auf deinen Link zur API-Beschreibung klicke, eine Minute nach deinem Beitrag, steht’s bei mir richtig

                Demnach gehe ich davon aus, dass die API-Beschreibung falsch war, RKI hat‘s schon ausgebessert, und du hast das alte noch im Browser.

                Oder sonst irgendwas, keine Ahnung 🤷‍♂️
                Ist das wirklich der selbe Datensatz?

                lg, Christian
                Zuletzt geändert von Christian Fenzl; 24.04.2021, 06:29.
                Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                Kommentar


                • Christian Fenzl
                  Christian Fenzl kommentierte
                  Kommentar bearbeiten
                  Probier trotzdem mit der aktuellen Version.
                  Sollte es doch ein Fehler in V1.X sein, gehe ich dem nicht mehr nach, weil ich den Code von V1.x selbst nicht mehr installiert hab und pflege.

                  Wenn’s dort auch so ist -> Loglevel Debug -> 1 Minute warten -> Abruf durchführen -> Logfile schicken.
                  Zuletzt geändert von Christian Fenzl; 24.04.2021, 06:35.
              • ThatRed
                Smart Home'r
                • 20.11.2015
                • 76

                #13
                Ich habe jetzt auf MQTT Gateway 2.0.3 aktualisiert und nach dem löschen des Browser Cache wird alles richtig angezeigt. Dann war das tatsächlich ein Fehler in der api und der Browser hat auf allen Seiten noch das falsche angezeigt. Im heruntergeladenen Logfile steht natürlich alles richtig drin!

                Danke Dir!




                Kommentar

                • Christian Fenzl
                  Lebende Foren Legende
                  • 31.08.2015
                  • 11245

                  #14
                  Drunkard
                  Bitte mach ein paar Screenshots, was wo wie eingestellt ist.
                  Es ist nicht so schwierig, sicher irgendwo ein Typo.

                  lg, Christian
                  Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                  Kommentar

                  • Drunkard
                    LoxBus Spammer
                    • 27.08.2015
                    • 277

                    #15
                    Christian Fenzl Brauchst du noch was?

                    Danke und Gruß
                    Stefan
                    Angehängte Dateien

                    Kommentar

                    Lädt...