Ankündigung

Einklappen
Keine Ankündigung bisher.

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

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

    #16
    Danke euch beiden



    Zitat von stoepf Beitrag anzeigen
    Das ist ein 2-Byte-Gleitkommawert, DPT 9.0001
    Ähnliches hat meine Suche auch ergeben --> nur hab ich keine Ahnung wie ich das dem Bash-Skript beibringen soll.



    Die Angabe von % war nur zur Verdeutlichung was "der BUS" aus den Eingaben auf der Konsole macht.
    Ich bräuchte die Umrechnung der Temperatur die so "X.XX" Grad Celsius vorliegt in für den BUS richtigen Werte die so aussehen "14 E2" entspricht 50°

    Kommentar


      #17
      Brauchst du nur die Suche bemühen.
      Schau mal hier: https://knx-user-forum.de/forum/öffentlicher-bereich/knx-eib-forum/17117-encode-dpt9-mit-der-shell?p=496805#post496805

      Kommentar


        #18
        Danke Dir, mit den richtigen Begriffen suchen, bringt manchmal was.

        leider klappt es nicht 100%ig

        -1° in der Eingabe ergibt auf dem BUS -41°

        desweiteren erhalte ich diese Fehlermeldungen:

        6.16
        Temperatur in Berlin
        (standard_in) 1: syntax error
        (standard_in) 1: syntax error
        (standard_in) 1: syntax error
        temp-bus.sh: Zeile 24: [: =: Einstelliger (unärer) Operator erwartet.
        (standard_in) 2: syntax error
        (standard_in) 1: syntax error
        90 00





        Code:
        #!/bin/bash
        
        ###Temperatur online abholen ###
        
        temp='.main.temp'
        
        echo Temperatur in Berlin
        curl -s GET "https://api.openweathermap.org/data/2.5/weather?q=Berlin&appid=KEYeingebenc&units=metric" |jq '.main.temp'
        echo Temperatur in Berlin
        
        
        ###Beginn Funktion###
        
        function dec2dpt9(){
        
        ein="$1"
        expo=2
        exp_ges=`echo "scale=0; 2^($expo)" | bc -l`
        ein=`echo "scale=0; $ein * 100" | bc` #erweitern auf 1/100
        ein=`echo "scale=0; $ein / $exp_ges" | bc` #Mantisse berechnen
        
        # Vorzeichen bestimmen
        wahr=$(echo "$ein > 0 " | bc)
        if [ $wahr = 1 ]; then
        vz=0
        else
        vz=1
        eina=`echo "-2048 - $ein" | bc`
        ein=`echo "$eina * -1" | bc`
        fi
        
        man_bin=`echo "obase=2; $ein" | bc` #Mantisse nach bin
        man11=`echo $man_bin | awk '{printf("%.11u\n", $1)}'` #bin bei bedarf auf 11 Stellen erweitern
        exp_bin=`echo "obase=2; $expo" | bc`
        exp4=`echo $exp_bin | awk '{printf("%.4u\n", $1)}'` #expo auf 4 stellen erweitern
        binresult=$vz$exp4$man11 #komplette bin zusammensetzen
        hexresult=$(echo 'obase=16;ibase=2;'$binresult | bc) #nach hex umrechnen
        hex=`echo ${hexresult:0:2}" "${hexresult:2:2}` #Leerstelle einfügen
        echo $hex
        }
        ###Ende Funktion###
        
        
        
        hexausgabe=$(dec2dpt9 $temp)
        echo $hexausgabe
        
        
        # KNX Tool für Testzwecke auskommentiert ###
        #knxtool groupwrite ip:localhost x/x/x $hexausgabe


        Vielleicht könnt Ihr mal ein Blick drauf werfen. Danke

        Kommentar


          #19
          Falls Du einen KNX Router haben solltest, alternativ knxd auf dem raspi installieren: Sonoff TH16 mit Temp+Feuchtesensor und Tasmota Software. Dann bekommst Du über WLAN direkt die Werte auf den Bus.

          Kommentar


            #20
            Da mittlerweile SmartHomeNG und SmartVisu laufen, möchte ich das hier nochmals aufwärmen.

            Kann ich die Temperatur (geliefert von yr.no) auf den Bus bzw. auf den MDT Glastaster bringen?


            Danke

            Kommentar


              #21
              Zitat von Maexle Beitrag anzeigen
              Da mittlerweile SmartHomeNG und SmartVisu laufen, möchte ich das hier nochmals aufwärmen.

              Kann ich die Temperatur (geliefert von yr.no) auf den Bus bzw. auf den MDT Glastaster bringen?
              Ja, grundsätzlich geht das. Ich kenne mich nun nicht so gut mit SmartHomeNG aus, habe aber ähnliches mit ioBroker realisiert.
              Dort gibt es auch einen yr.no-Adapter. Der schreibt die Werte auf sog. Datenpunkte. Mit den Datenpunkten kannst Du dann arbeiten.
              Ich habe z.B. die Beschattungssteuerung für die Rollläden damit gefüttert.
              Ein Blockly-Script schließt die Rollläden bestimmter Fenster zum Zeitpunkt (Sonnenhöchststand - 120 Minuten), wenn die Tageshöchtstemperatur über 20 Grad beträgt.
              Das aktuelle Datum und die aktuelle Uhrzeit lasse ich ebenfalls durch ioBroker regelmäßig auf den KNX-Bus senden. Dazu schreibe ich per Script einfach die Datenpunkte (KNX-GAs) regelmäßig mit aktuelem Datum und aktueller Uhrzeit neu. Die Übertragung auf den Bus läuft mit KNX-Adapter automatisch.
              Das gleiche müsstest Du mit der Temperatur machen können. Ich kann das hier nun nur für ioBroker beschreiben wie ich das machen würde. Eine GA mit der aktuellen Temperatur in der ETS anlegen und mit dem Glastaster verknüpfen. KNX-Projektdatei importieren und den neuen Datenpunkt generieren lassen.
              Den Datenpunkt dann bei Änderung des yr-Wertes automatisch aktualisieren lassen.

              Ich hoffe, das hilft dir erstmal weiter.

              Viele Grüße

              Kommentar

              Lädt...
              X