Ankündigung

Einklappen
Keine Ankündigung bisher.

Wetterabhängige Rolladensteuerung

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

    KNX/EIB Wetterabhängige Rolladensteuerung

    Hallo Zusammen,

    Ich nutze in meinem Haus KNX, Eibd, Linknx und Knxweb.
    Der Verbaute Aktor ist ein ABB JA/S8.230.1M

    Momenatn ist es so geregelt das die Rolladen (linknx) sich den Sonnen auf und untergang im Internet holt.

    Nur da es langsam auf den Sommer zugeht habe ich das Problem das mit konstant die Sonne aufs Haus schein.

    Kann ich mit Linknx eine Steuerung realisieren das die Rolladen je nach Wetterlage auf bestimmte Positionen fahren?


    Gruss
    Oliver

    #2
    Zitat von OliWit82 Beitrag anzeigen
    Kann ich mit Linknx eine Steuerung realisieren das die Rolladen je nach Wetterlage auf bestimmte Positionen fahren?
    Hi Oliver,
    ja das ist möglich wenn dein Aktor es zulässt.

    Meine Aussenstores verschatten dass Haus nur wenn es drinnen wärmer ist als ein bestimmter Wert, wenn die Sonne heller scheint als 40000 lux und wenn die Sonne auch auf der Seite (Azimuth) des Hauses steht.

    Gruss,

    Chris

    Kommentar


      #3
      Hi Chris,

      der Aktor kann das nur wo bekomme ich meine Daten / Werte her?

      Kommentar


        #4
        Zitat von OliWit82 Beitrag anzeigen
        Hi Chris,

        der Aktor kann das nur wo bekomme ich meine Daten / Werte her?
        Welche Daten möchtest du haben? Entweder wie du es bereits machts aus dem Internet oder von einer Wetterstation... Entweder ne KNX-Wetterstation (z.B. Elsner) oder halt eine Wetterstation welche am Rechner angeschlossen ist wo linknx drauf läuft.

        Gruss,
        Chris

        Kommentar


          #5
          Da ich keine Wetterstation habe müsste ich die Daten irgendwie aus dem Internet beziehen.

          Kommentar


            #6
            Und wie kann ich mit linknx die Wetterdaten aus dem Internet beziehen?
            Würde mich auch interessieren da ich noch keine Wetterstation habe

            Kommentar


              #7
              Zitat von nektar Beitrag anzeigen
              Und wie kann ich mit linknx die Wetterdaten aus dem Internet beziehen?
              Würde mich auch interessieren da ich noch keine Wetterstation habe
              Hi,
              ich würde da ein z.B. ein Perl Skript schreiben welches die Daten ins Netz "fischen" geht und dann per groupswrite die Daten auf den KNX-Bus sendet...

              Gruss,

              Chris

              Kommentar


                #8
                Zitat von xianlux Beitrag anzeigen
                ... ich würde da ein z.B. ein Perl Skript schreiben welches die Daten ins Netz "fischen" geht und dann per groupswrite die Daten auf den KNX-Bus sendet...
                Hoi

                Genau!

                Anleitung auf eigene Gefahr:


                Linux-Kompendium: Crontab

                root Rechte erlangen: su -> Passwort:

                Ein Verzeichnis für Userscripte aussuchen, z.B.: /usr/bin/ /*oder sonstwo*/

                Eine Datei anlegen: nano /usr/bin/yahoo_weather.pl EDIT: ääähhh, natürlich google_weather.pl


                Script:
                Code:
                #!/usr/bin/perl -w
                use strict;
                
                use XML::TreePP;
                
                # Zum Testen im Browser: http://www.google.com/ig/api?weather=Munchen+Germany&hl=de
                
                #my $ZipCode = $ARGV[0];  # wenn man das script mit der PLZ als Argument aufrufen möchte
                
                my $ZipCode = "Munchen";  # Eigene PLZ oder Ort eingeben, mit yahoo testen ob sie gefunden wird
                
                my $country = "Germany";  # Eigenes Land eingeben, Germany oder Switzerland oder ...
                
                my $url = "http://www.google.com/ig/api?weather=".$ZipCode."+".$country."&hl=de";  # die URL
                
                my $tpp = XML::TreePP->new();
                
                my $tree = $tpp->parsehttp( GET => $url );  # die eigentliche Abfrage
                
                
                
                my $city = $tree->{xml_api_reply}->{weather}->{forecast_information}->{city}->{"-data"};
                
                if (length($city) < 1) {
                
                  print "Unable to get info -- most likely a bad zip code. \n";
                
                }
                
                
                my $currtempc = $tree->{xml_api_reply}->{weather}->{current_conditions}->{temp_c}->{"-data"};
                
                my $currhumidity = $tree->{xml_api_reply}->{weather}->{current_conditions}->{humidity}->{"-data"};
                
                my $currcondition = $tree->{xml_api_reply}->{weather}->{current_conditions}->{condition}->{"-data"};
                
                my $currwind = $tree->{xml_api_reply}->{weather}->{current_conditions}->{wind_condition}->{"-data"};
                
                my $todayhigh = $tree->{xml_api_reply}->{weather}->{forecast_conditions}->[0]->{high}->{"-data"};
                
                my $todaylow = $tree->{xml_api_reply}->{weather}->{forecast_conditions}->[0]->{low}->{"-data"};
                
                my $todaycond = $tree->{xml_api_reply}->{weather}->{forecast_conditions}->[0]->{condition}->{"-data"};
                
                my $tomorrowcond = $tree->{xml_api_reply}->{weather}->{forecast_conditions}->[1]->{condition}->{"-data"};
                
                
                system("groupwrite ip:localhost 7/0/0 $currtempc");     # bitte die richtigen/eigenen GA's eintragen
                system("groupwrite ip:localhost 7/0/1 $currhumidity");  # vielleicht stimmen die Datentypen für linknx
                system("groupwrite ip:localhost 7/0/2 $currcondition"); # sonst alles mit type="16.000" versuchen
                system("groupwrite ip:localhost 7/0/3 $currwind");
                system("groupwrite ip:localhost 7/0/4 $todayhigh");
                system("groupwrite ip:localhost 7/0/5 $todaylow");
                system("groupwrite ip:localhost 7/0/6 $todaycond");
                system("groupwrite ip:localhost 7/0/7 $tomorrowcond");
                Script copy pasten und mit ctrl O (wie Otto) sichern, mit ctrl x verlassen

                Die Datei ausführbar machen: chmod 755 yahoo_weather.pl EDIT: ääähhh, natürlich google_weather.pl

                Damit das script automatisch z.B. alle 15 min. ausgeführt wird mit cron aufrufen lassen:

                Mit dem Befehl crontab -e kann man die benutzereigene Crontab editieren.

                1,16,31,46 * * * * /usr/bin/yahoo_weather.pl >/dev/null 2>&1 EDIT: ääähhh, natürlich google_weather.pl

                hinzufügen und mit ctrl O (wie Otto) sichern, mit ctrl x verlassen


                Die Werte in Linknx verfügbar machen:
                Code:
                  <!-- Google Webabfrage -->
                    <object id="google_currtempc"     gad="7/0/0" type="9.xxx">G-Weather akt. Temperatur</object>
                    <object id="google_currhumidity"  gad="7/0/1" type="5.001">G-Weather akt. Feuchte</object>
                    <object id="google_currcondition" gad="7/0/2" type="16.000">G-Weather akt. Wetter</object>
                    <object id="google_currwind"      gad="7/0/3" type="16.000">G-Weather akt. Wind</object>
                    <object id="google_todayhigh"     gad="7/0/4" type="9.xxx">G-Weather heut. Maxtemp</object>
                    <object id="google_todaylow"      gad="7/0/5" type="9.xxx">G-Weather heut. Mintemp</object>
                    <object id="google_todaycond"     gad="7/0/6" type="16.000">G-Weather heut. Wetter</object>
                    <object id="google_tomorrowcond"  gad="7/0/7" type="16.000">G-Weather morg. Wetter</object>
                Das wars, hoffentlich.
                Grüsse Bodo
                Fragen gehören ins Forum, und nicht in mein Postfach;
                EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                Kommentar


                  #9
                  Hoi

                  Schlimmstenfalls ist perl nicht installiert.

                  Oder man muss die XML::TreePP funktionalität nachinstallieren.

                  Debian -- Details of package libxml-treepp-perl in lenny
                  Grüsse Bodo
                  Fragen gehören ins Forum, und nicht in mein Postfach;
                  EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                  Kommentar


                    #10
                    Zitat von Bodo Beitrag anzeigen
                    Anleitung auf eigene Gefahr:
                    Hi Bodo,
                    na das ist doch mal praktisch :-) Das stand noch immer auf meiner ToDo-Liste um die Wettervorhersage bei meiner Verschattung mit einzubauen (falls es am nächsten Tag auch super Wetter wird brauch ich weniger Temperatur im Haus als wenns die Tage danach schlechtes/kälteres Wetter wird).

                    Thx, jetzt kann ich das schnell mal einbauen :-)

                    Gruss,

                    Chris

                    Kommentar


                      #11
                      Hallo.

                      bei mir kommt immer nur wen ich die datei manuel ausführen will

                      Code:
                      homeserver:/var/lib/linknx/script# ./google_weather.pl
                      LWP::UserAgent or HTTP::Lite is required: http://www.google.com/ig/api?weather=Dorsten+Germany&hl=de at ./google_weather.pl line 18

                      Kommentar


                        #12
                        Zitat von nektar Beitrag anzeigen
                        Hallo.

                        bei mir kommt immer nur wen ich die datei manuel ausführen will

                        Code:
                        homeserver:/var/lib/linknx/script# ./google_weather.pl
                        LWP::UserAgent or HTTP::Lite is required: http://www.google.com/ig/api?weather=Dorsten+Germany&hl=de at ./google_weather.pl line 18
                        Hi,
                        du musst das Modul LWP::UserAgent oder HTTP::Lite installieren.
                        Hängt jetzt von deiner Linux-Distri ab wie du das machen musst...

                        Kommentar


                          #13
                          ahhhhhhh super

                          jetzt sendet er sogar etwas:-)

                          Kommentar


                            #14
                            Invalid packet received for ValueObject (too short)

                            Nabend,

                            beim Senden der Temperaturwerte bekomme ich im Logfile nur folgende Fehlermeldung:
                            Invalid packet received for ValueObject (too short)
                            Habe die Temperaturen mal per echo ausgegeben, das sieht sauber aus:
                            15, 6 etc. Muss man die evtl. noch formatieren (float?) habe schon mal versucht das mit einem sprintf zumachen schein aber nicht zuklappen.
                            Auch manuell ein groupwrite ip:localhost 7/0/0 15 oder groupwrite ip:localhost 7/0/0 15.00 funktioniert nicht.

                            Linknx Konfig ist aus dem Thread kopiert 7/0 Bereich war bei mir frei ;-)
                            Bei mir läuft alles auf einem Debian Lenny System.

                            Danke und Gruß

                            JayKay

                            Kommentar


                              #15
                              Wie kann ich mir denn die Temperaturwerte bei knx anzeigenlassen?
                              bekomme da immer nur eine 0

                              Habe bei Format "$1" eingegeben.

                              Muss ich bei Anordnung auch etwas angeben??
                              Wüsste auch nicht wonach ich googeln sollte

                              Kommentar

                              Lädt...
                              X