Navigation

    egnite Forum
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    1. Home
    2. Marco T
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Marco T

    @Marco T

    14
    Reputation
    53
    Posts
    1227
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    Marco T Follow

    Posts made by Marco T

    • RE: HTTP-Push in Firmware 6.x

      @tim said in HTTP-Push in Firmware 6.x:

      Man könnte den API-Key bei Palamoa auch als HTTP-Header übertragen, damit er nicht mehr Teil der URL ist.

      Das ist ein guter Hinweis. Wobei ich in der Doku keine Möglichkeit sehe, custom header zu setzen.
      Aber Palamoa bietet ja auch die Möglichkeit, den Key ins JSON zu packen... das muss ich mal ausprobieren.

      A few minutes later...
      Cool, es hat funktioniert!

      {%option url%}http://palamoa.de/json/{%endoption-%}
      {%option method%}POST{%endoption-%}
      {%option num_variables%}1{%endoption-%}
      {%option title1%}API-Key{%endoption-%}
      Content-Type: application/json; charset=utf-8
      {# #}
      {
      "apikey": "{{actiontab_var1}}",
      "device_name":   "{{hostname}}",
      "{{sensortab_name.0}}": 
      {
      "unit":     "{{sensortab_unit.0}}",
      

      Jetzt ist der API-Key schön im JSON verpackt...
      Achja, in der Doku auf palamoa.de fehlen die Anführungszeichen um "apikey". Ohne die Danführungszeichen gibt es nen http error 400 vom palamoa Server.
      Screenshot von palamoa.de

      posted in Generelle Diskussion
      Marco T
    • RE: HTTP-Push in Firmware 6.x

      @tim said in HTTP-Push in Firmware 6.x:

      {%option url%}http://palamoa.de/json/{{actiontab_var1}}{%endoption-%}

      Mit dieser Information habe ich ich "mein" Template für palamoa jetzt angepasst:

      {%option url%}http://palamoa.de/json/{{actiontab_var1}}{%endoption-%}
      {%option method%}POST{%endoption-%}
      {%option num_variables%}1{%endoption-%}
      {%option title1%}API-Key{%endoption-%}
      add=/tpl/j/p_thpdp.tpl
      
      Content-Type: application/json; charset=utf-8
      {# #}
      {
          "device_name":   "{{hostname}}",
          "{{sensortab_name.0}}": 
          {
            "unit":     "{{sensortab_unit.0}}",
            "color":     "#5F8AFF",
            "label":     "{{sensortab_name.0}}",
            "value":     "{{sensortab_value.0}}"
          },
          "{{sensortab_name.1}}": 
          {
            "unit":     "{{sensortab_unit.1}}",
            "color":     "#32d08e",
            "label":     "{{sensortab_name.1}}",
            "value":     "{{sensortab_value.1}}"
          },
          "{{sensortab_name.2}}": 
          {
            "unit":     "{{sensortab_unit.2}}",
            "color":     "#e86161",
            "label":     "{{sensortab_name.2}}",
            "value":     "{{sensortab_value.2}}"
          },
          "{{sensortab_name.3}}": 
          {
            "unit":     "{{sensortab_unit.3}}",
            "color":     "#2222F0",
            "label":     "{{sensortab_name.3}}",
            "value":     "{{sensortab_value.3}}"
          },
      	"{{sensortab_name.0}}_Status": 
          {
            "unit":     "Status",
            "color":     "#5F8AFF",
            "label":     "{{sensortab_name.0}}_Status",
            "value":     "{{sensortab_status.0}}"
          },
          "{{sensortab_name.1}}_Status": 
          {
            "unit":     "Status",
            "color":     "#32d08e",
            "label":     "{{sensortab_name.1}}_Status",
            "value":     "{{sensortab_status.1}}"
          },
          "{{sensortab_name.2}}_Status": 
          {
            "unit":     "status",
            "color":     "#e86161",
            "label":     "{{sensortab_name.2}}_Status",
            "value":     "{{sensortab_status.2}}"
          },
          "{{sensortab_name.3}}_Status": 
          {
            "unit":     "Status",
            "color":     "#2222F0",
            "label":     "{{sensortab_name.3}}_Status",
            "value":     "{{sensortab_status.3}}"
          }
        }
      

      So funktioniert alles wieder wie bisher und erst noch schöner 🙂

      Was ich festgestellt habe ist, dass jetzt im Syslog die url nicht mehr angezeigt wird. Solange ich nur einen http push habe ist das kein Thema, könnte aber bei mehreren pushes schnell unübersichtlich werden.

      2022-11-30_15h00_05.png
      Dafür kann ich den Screenshot davon jetzt posten ohne den API-Key zuerst verschwinden lassen zu müssen.

      posted in Generelle Diskussion
      Marco T
    • RE: HTTP-Push in Firmware 6.x

      Hallo Tim

      Vielen Dank für die schnelle Antwort.
      Ich verwende für Palamoa eben ein custom template das auch den Status mit überträgt. Mal sehen, ob ich die Originaldatei noch finde (sie ist wahrscheinlich auch hier im Forum, also kein Problem 🙂 ) Ich werde mein Template also entsprechend überarbeiten.

      Das mit dem Logeintrag habe ich nochmals ausprobiert... Ich bekomme jetzt fast immer 2 Einträge (Configuration x saved und den http request).
      Ausser, wenn ich einen Test auslöse, wenn gerade etwas anderes verarbeitet wird:
      2022-11-30_14h20_29.png

      Kann es sein, dass einfach die Log-Einträge von den letzten x Sekunden angezeigt werden? Vom Timing her könnte es in der Original-Nachricht stimmen da ich alle 5 Minuten die Daten an palamoa sende.

      posted in Generelle Diskussion
      Marco T
    • HTTP-Push in Firmware 6.x

      Guten Tag

      Seit dem Update auf Version 6 hat bei mir der HTTP-Push auf Palamoa nicht mehr funktioniert. Heute habe ich herausgefunden, wieso.
      2022-11-30_10h38_30.png

      Um etws flexibler zu sein, hatte ich "$1" in der Service URL für die "Variable 1" verwendet. Dies wird offenbar nicht mehr unterstützt. "Test" ergab einen 404 vom Server.

      Lösung: ich hab das $1 direkt durch den API-Key ersetzt und es funktioniert wieder.

      Natürlich habe ich nach 2 Minuten noch ein 2. Mal getestet indem ich auf "Test" geklickt habe und festgestellt, dass für alle Logeinträge immer die Zeit des letzten Ereignisses angezeigt wird.
      2022-11-30_10h35_40.png

      Bei der Unterstützung von Variablen in der Service-URL weiss ich nicht, ob dies überhaupt ein Bug ist. Die Zietanzeigt bei den Log-Einträgen scheint mir aber nicht so gewollt.

      Heute getestet mit 6.0.10.1, zuvor mit 6.0.7.1

      posted in Generelle Diskussion
      Marco T
    • RE: Windows 11, Webinterface zeigt Momentanwerte nicht sofort

      Ein unter WSL 2 laufender Firefox auf demselben Computer ist nicht betroffen. Dies ergibt insofern Sinn, als dass mit WSL 2 ein komplettes, virtualisiertes Linux unter Windows läuft.
      Win11 QuerxQuirk
      Links Firefox nativ Windows 11, Rechts Firefox unter Debian in Windows Subsystem for Linux 2

      Unter WSL 1, das den Netzwerkstack von Windows zu nutzen scheint, kann ich es nicht so leicht testen, da dort das Laufelassen von GUI Applikationen nicht ohne weiteres möglich ist (Ja, es gibt Workarounds)

      posted in Generelle Diskussion
      Marco T
    • Windows 11, Webinterface zeigt Momentanwerte nicht sofort

      Wenn ich auf meinem neuen Gerät mit Windows 11 das Webinterface des Querx THP aufrufe (getestet mit Firmware 5.0.14.1 und 5.0.16.1) werden die Momentanwerte nicht angezeigt.
      2022-05-09_08h06_53.png
      Nach 1 Minute werden die Werte dann angezeigt (hängt von der eingestellten refersh-rate des Webinterface ab, ich hab es normal auf 1min eingestellt. Stelle ich es auf 10s bekomme ich die Werte nach 10s).
      2022-05-09_08h07_38.png

      Überraschend: auf meinem alten Gerät mit Windows 10 tritt das Phänomen nicht auf. Auf beiden Geräten läuft Firefox Version 100.

      Getestet:
      Windows 10: Firefox 100, Chrome 101.0.4951.54, Edge 101.0.1210.39 -> Momentanwerte werden sofort dargestellt
      Windows 11: Forefox 100, Edge 101.0.1210.39 -> Momentanwerte werden erst angezeigt, wenn die Seite das Erste mal sich selber aktualisiert

      Durch Reload der Website (mit F5 oder Reload-Symbol) wird das Verhalten von Neuem getriggert (Auf Windows 11 werden die Momentanwerte dann nicht mehr dargestellt).

      Ein für mich völlig unerklärliches Phänomen das ich nicht "Bug" oder "Fehler" nennen will. Aber möglicherweise von Interesse für euch.

      posted in Generelle Diskussion
      Marco T
    • RE: Python / Datenbank / Querx Beispiel

      Und wer den Taupunkt wissen will, kann den SQL-Server rechnen lassen. Der macht das sehr effizient :). Bei der Abfrage von 19'000 Zeilen aus der DB lag der Zeitunterschied für die Verarbeitung der Abfrage unterhalb der mehr oder weniger zufälligen Varianz zwischen mehreren Anfragen.

      SELECT *,  ROUND(-4283.58 / ((LN( HumidityAvg / 100 ) + ((17.625*TemperatureAvg) / (243.04+TemperatureAvg))) - 17.625) - 243.04, 1) AS DewPoint
        FROM ClimateData
        WHERE TIME BETWEEN '2022-01-1 00:00' AND '2022-03-11 09:00'
      

      Die Resultate der Rechnung stimmen mit jenen überein, die vom Querx-Sensor selber ausgegeben werden.
      Die ursprünglich Formel war:

      ROUND( (243.04 * (LN( HumidityAvg / 100) + ((17.625 * TemperatureAvg) / (243.04 + TemperatureAvg)))) / (17.625 - (LN( HumidityAvg / 100 ) + ((17.625*TemperatureAvg) / (243.04+TemperatureAvg)))), 1) AS DewPoint
      

      Da ist aber (LN( HumidityAvg / 100) + ((17.625 * TemperatureAvg) / (243.04 + TemperatureAvg)) 2 mal drin, deshalb habe ich mit WolframAlpha rumgespielt, bis etwas kürzeres heraus kam 🙂 Die Ergebnisse sind identisch, die umgestellte Rechung ist aber deutlich kürzer und sollte auch effizienter sein.

      posted in Generelle Diskussion
      Marco T
    • RE: Python / Datenbank / Querx Beispiel

      Etwas flexibler als die 1. Abfrage ist folgende Abfrage, die die Maximal-, Minimal- und Durchschnittswerte über beliebige Zeitintervalle anzeigt:

      SELECT Sensor, Time, MIN(TemperatureLow), ROUND(AVG(TemperatureAvg), 1) , MAX(TemperatureHigh), MIN(HumidityLow), ROUND(AVG(HumidityAvg), 1), MAX(HumidityHigh), MIN(PressureLow), ROUND(AVG(PressureAvg), 1), MAX(PressureHigh) 
        FROM ClimateData
        WHERE Time BETWEEN '2022-01-01 00:00' AND '2022-02-01 00:00'
        GROUP BY UNIX_TIMESTAMP(TIME) DIV 3600
      

      Die 3. Zeile mit BETWEEN wählt den Zeitbereich, von welchem Daten angezeigt werden sollen.
      Die 3600 in der 4. Zeile ist das Intervall in Sekunden, über welches die Minimal-, Maximal- und Durchschnittswerte ermittelt werden.
      Mit der obigen Abfrage erhalte ich alle Werte vom Januar 2022 mit einem Intervall von 1h. Mit dieser Methode kann ich recht bequem die Daten reduzieren bevor ich sie z.B. in einer Tabellenkalkulation weiter verarbeite.
      Die Abfrage ist auch recht schnell. Alle Daten aus 2021 mit 1h Intervall abzufragen hat gerade mal 2.23s gedauert (MariaDB unter WSL auf einem Intel I5 3320 M mit 2.6GHz). Von diesen 2.23 wurden 2.17s für das Übertragen des Resultates zum Client benötigt 🙂

      Bei Abfragen mit grösseren Intervallen (z.B. 86400 für 1 Tag) ist zu beachten, dass unix_timestamp immer in UTC ist. Das muss man ev. manuell korrigieren.

      GROUP BY (UNIX_TIMESTAMP(TIME)+3600) DIV 86400
      

      zB wenn man UTC+1 (Mitteleuropäische Zeit) als Lokalzeit hat.

      posted in Generelle Diskussion
      Marco T
    • Druckwelle Vulkanesplosion Tonga

      Die Druckwelle der Vulkanexplosion bei Tonga war auch bei uns trotz 17000km Distanz gut messabar. Die Zeitschritte von 5min die ich für unseren Querx gewählt habe, reichen gerade um die Druckwelle zu erfassen. Mit +1.4hPa und -1.2hPa war die erste Welle um ca. 20:30 MEZ sehr gut von den natürlich auftretenden Luftdruckänderungen zu unterscheiden. Die 2. Welle um ca. 02:00 war da schon weniger deutlich.
      Druckwelle_Vulkanexplosion_Tonga.png
      Position: Arbon (Schweiz) 47.516669°, 9.433338°, 400müM (Luftdruck auf Stationshöhe)

      Wer hat die Welle auch gemessen und mag seine Daten teilen?

      posted in Generelle Diskussion
      Marco T
    • RE: Sommer / Winterzeit, csv export

      @Harald-Kipp ok. Danke für die Information.
      Ein weiterer Grund, endlich diese leidige Umstellung der Uhren 2 mal im Jahr abzuschaffen 🙂

      Dass time_local und time_gmt identisch sind, sollte meiner Meinung nach trotzdem nicht sein. Weder in Sommer- noch in Winterzeit.

       <part timestamp="1635638212">
        <date_local>31.10.2021</date_local>
        <time_local>01:56:52</time_local>
        <date_gmt>31.10.2021</date_gmt>
        <time_gmt>01:56:52</time_gmt>
       </part>
       <part timestamp="1635638512">
        <date_local>31.10.2021</date_local>
        <time_local>01:01:52</time_local>
        <date_gmt>31.10.2021</date_gmt>
        <time_gmt>01:01:52</time_gmt>
       </part>
      
      posted in Generelle Diskussion
      Marco T