Ankündigung

Einklappen
Keine Ankündigung bisher.

Wetterabhängige Rolladensteuerung

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

  • Bodo
    antwortet
    Hoi

    Schlimmstenfalls ist perl nicht installiert.

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

    Debian -- Details of package libxml-treepp-perl in lenny

    Einen Kommentar schreiben:


  • Bodo
    antwortet
    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.

    Einen Kommentar schreiben:


  • xianlux
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • OliWit82
    antwortet
    Da ich keine Wetterstation habe müsste ich die Daten irgendwie aus dem Internet beziehen.

    Einen Kommentar schreiben:


  • xianlux
    antwortet
    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

    Einen Kommentar schreiben:


  • OliWit82
    antwortet
    Hi Chris,

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

    Einen Kommentar schreiben:


  • xianlux
    antwortet
    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

    Einen Kommentar schreiben:


  • OliWit82
    hat ein Thema erstellt KNX/EIB Wetterabhängige Rolladensteuerung.

    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
Lädt...
X