Ankündigung

Einklappen
Keine Ankündigung bisher.

Wetter/Temperatur Internet --> RasPi --> KNX

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Wetter/Temperatur Internet --> RasPi --> KNX

    Hallo zusammen,

    ist es mit geringem Aufwand möglich. Das aktuelle Wetter bzw. aktuelle Temperatur auf den BUS zu bringen (keine Wetterstation vorhanden).

    Um das "Wetter "auf den RasPi bringen gibt es ein paar fertige Lösungen:

    - https://wiki.ubuntuusers.de/Ansiweather/
    - https://www.maketecheasier.com/weath...-command-line/ ---- https://github.com/chubin/wttr.in

    ist es möglich die relevanten Daten aus diesen "Programmen" abzugreifen und z.B alle 15 min auf den BUS schreiben.


    Danke euch schon mal.


    #2
    Schau dir mal Node Red an, das geht damit ganz einfach.
    Mache ich auch so, spart mir die Wetterstation.

    ​​​​​​​Grüße Doc

    Kommentar


      #3
      Puuh,

      das ist schon ein "massives Programm". Ich hatte eher an sowas wie cronjob gedacht.

      Kommentar


        #4
        Wie wär's mit 1-Wire? Gerade für Temperatur-Monitoring eine sehr elegante und preisgünstige Lösung und Du hättest auch wirklich Deine Temperaturen und nicht die von der Wetterstation im übernächsten Ort...
        Kind regards,
        Yves

        Kommentar


          #5
          das wäre natürlich eine Möglichkeit.

          Mir geht es jetzt nicht um 100%ige Genauigkeit.
          openweathermap oder die oben genannten wären mir ausreichend genau.

          Dachte es dürfte (für jemand der sich auskennt) nicht allzu viel Aufwand sein. Die Temperatur aus der json auslesen und auf den BUS schreiben.

          Kommentar


            #6
            Du schriebst ja auch das aktuelle Wetter auf den Bus, nicht nur eine Temperatur.
            Und so komplex ist Node Red nicht, wenn man es nicht möchte.
            Deine Anforderung wäre gerade einmal ein Flow und du hast alle Wetterdaten auf dem Bus.

            Grüße Doc

            Kommentar


              #7
              Zitat von Doctor Snuggles Beitrag anzeigen
              aktuelle Wetter auf den Bus, nicht nur eine Temperatur.

              einmal ein Flow und du hast alle Wetterdaten auf dem Bus.

              Das war vielleicht etwas unglücklich formuliert. Priorität hätte mir die Temperatur.

              Würdest du mir den "Flow" zusammenbauen, damit ich den testen kann.

              Kommentar


                #8
                Ich kann dir meinen Flow geben, dann löscht du einfach alles an Werten, was du nicht brauchst????

                Kann ich später machen, wenn ich wieder am Rechner bin.

                Grüße Doc
                ​​​​​​​

                Kommentar


                  #9
                  Super

                  Danke schon mal

                  Kommentar


                    #10
                    Zitat von Maexle Beitrag anzeigen
                    openweathermap
                    gibt's auf dem Gira L1/X1, falls man den hat. [1] [2]

                    Kommentar


                      #11
                      Hallo zusammen,

                      soweit bin ich - scheitere aber an der "HEX-Umwandlung"


                      Code:
                      #!/bin/bash
                      
                      #Temperatur Variable in Dezimal erstellen
                      
                      deztemp=$(curl -s GET "https://api.openweathermap.org/data/2.5/weather?q=Berlin&appid=APIKEYEINGEBEN&units=metric " | jq '.main.temp')
                      
                      #Temperatur Variable in HEX erstellen
                      hextemp=$deztemp * umwandlung
                      
                      #Befehl auf den BUS senden
                      knxtool groupwrite ip:localhost 1/2/3 $hextemp

                      edit:
                      ich glaube es liegt an der "deztemp" im Moment 3.04 --> Kommazahl in HEX nicht möglich?

                      edit 2:
                      ist HEX überhaupt das richtige Format???
                      Zuletzt geändert von Maexle; 28.02.2020, 12:18.

                      Kommentar


                        #12
                        Also ich würde den Wert ggf. erstmal mit 100 multiplizieren, um die Kommastellen weg zu bekommen. Da Du ja Bash verwendest, wäre dann soetwas möglich, um aus Dezimal Hex zu machen:

                        Code:
                        printf '%x\n' ${deztemp}
                        Kind regards,
                        Yves

                        Kommentar


                          #13
                          Zitat von starwarsfan;
                          [CODE
                          printf '%x\n' ${deztemp}
                          [/CODE]
                          diesen Befehl hab ich auch gefunden - Danke

                          Der Verdacht das es sich nicht um HEX handelt wird verstärkt:

                          Vom Gruppenmonitor auf die Gruppe geschrieben:
                          0 - 0
                          1 - 00 64
                          2 - 00 C8
                          3 - 01 2C
                          4 - 01 90
                          5 - 01 F4

                          10 - 03 E8
                          11 - 04 4C
                          15 - 05 DC
                          20 - 07 D0
                          25 - 0C E2
                          30 - 0D DC

                          Kennt jemand diesen Zahlensystem oder bin ich ( mit dem Befehl "groupwrite" ) total auf dem Holzweg.
                          vgl. https://github.com/knxd/knxd/wiki/KnxTool könnte ich mir vorstellen, dass ein anderer Befehl nötig ist.

                          Wobei

                          knxtool groupwrite ip:localhost 11/4/0 14 E2 --> schreibt mir 50° auf den BUS.
                          knxtool groupwrite ip:localhost 11/4/0 14 --> 7,8%
                          knxtool groupwrite ip:localhost 11/4/0 100 --> invalid HEX bytes (in der Konsole)




                          Zuletzt geändert von Maexle; 28.02.2020, 16:42.

                          Kommentar


                            #14
                            Das ist ein 2-Byte-Gleitkommawert, DPT 9.0001
                            Zur Umrechnung hab ich diesen Thread https://knx-user-forum.de/forum/%C3%...aten-telegramm gefunden.
                            ​​​​​
                            Mit deinen Werten durchgespielt, ergibt sich folgendes:
                            0001 0100 1110 0010 (bin) = 14 e2 (hex) MEEE EMMM MMMM MMMM

                            M = 4e2 (hex) = 1250 (dez)
                            E = 2 (hex) = 2 (dez)

                            In die Formel (0,01 * M * 2^E) aus dem Thread eingesetzt, ergibt sich 0,01 * 1250 * 2^2 = 50

                            Gruß Stefan

                            Kommentar


                              #15
                              Was suchst du jetzt genau, eine Umwandlung von Prozent nach Hex?
                              Dann wäre dies wohl das richtige Script.

                              Code:
                              #!/bin/bash
                              
                              declare -r HEX_DIGITS="0123456789ABCDEF"
                              
                              dec_value=$1
                              hex_value=""
                              
                              until [ $dec_value == 0 ]; do
                              
                              rem_value=$((dec_value % 16))
                              dec_value=$((dec_value / 16))
                              
                              hex_digit=${HEX_DIGITS:$rem_value:1}
                              
                              hex_value="${hex_digit}${hex_value}"
                              
                              done
                              
                              echo -e "${hex_value}"
                              groupwrite ip:127.0.0.1 2/2/13 $hex_value

                              Kommentar

                              Lädt...
                              X