Ultimative Rolladensteuerung

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

linuzer
Beiträge: 19
Registriert: 11.02.2014, 10:51

Ultimative Rolladensteuerung

Beitrag von linuzer » 11.02.2014, 19:19

Zum Thema Rolladensteuerung wurde zwar schon sehr viel geschrieben und gepostet, dennoch möchte ich hier einen neuen Ansatz vorstellen: Die Steuerung mithilfe der astronomischen Dämmerungszeitpunkte.

An bisherigen Ansätzen stört mich, dass der Zeitpunkt im einfachsten Fall "irgendwie" am Sonnenuntergan hängt, was zu einer jahreszeitlich notwendigen Anpassung führt. Funkleuchtturm hat das zwar hier (http://homematic-forum.de/forum/viewtop ... 8c03f66a14) mit einer Logik minimiert, aber auch hier müssen die richtigen Anpassungparameter erstmal gefunden werden. Andere Ansätze hängen sich an ganz andere Größen, wie z.B. Helligkeit (sofern man denn einen Sensor hat), was aber zu eigenen Problemen führt, z. B. bei Gewitter/Bewölkung am Abend.

Wenngleich keiner dieser Ansätze verkehrt ist, war mein Gedanke jedoch, dass der Dämmerungsverlauf doch ein strikt mathematisch beschriebener astronomischer Vorgang ist, der somit genau berechenbar ist. Klar, diese Berechnung ist nicht ganz einfach, andererseits gibt es zahlreiche Websites, auf denen die einzelnen Dämmerungszeitpunkte pro Geoposition nachgeschaut werden können. Somit braucht man also nur einen Script, der die Werte auf die CCU holt und sie mit einem Parameter "anpassbar" macht.

Zum Nachbauen empfiehlt es sich dringend, die Dokumentation auf http://de.wikipedia.org/wiki/D%C3%A4mmerung, http://lexikon.astronomie.info/zeitgleichung/ und http://www.calsky.com zu studieren, insbesondere die Unterschiede zwischen Sonnenuntergang, Bürgerlicher Dämmerung, Nautische Dämmerungn und Astronomischer Dämmerung.

Funktionsweise:
Der HM-Script "AstroDatenHolen" läuft einmal pro Nacht, ruft über CUxD den Shellscript "GetAstroDates.sh" mit den Positionsangaben aus der WebUI auf und schreibt die aus der Web-Antwort ausgelesenen Dämmerungszeiten in die Systemvariablen. Dann berechnet es anhand des eingestellten Ausgangszeitpunkts und des Prozentwertes den finalen Rolladen-Zeitpunkt und programmiert den Timer zu dieser Zeit (auf dessen Auslösen wiederum die Rolläden runter fahren).

Als Ausgangswert kann man "Sonnenuntergang + 50%" nehmen, was also die Mitte zwischen "Sonnenuntergang" und "Ende Bürgerlicher Dämmerung" darstellt (wenn der Dämmerungskamm den Zenit durschreitet) und logischerweise jeden Tag in einer anderen Zeit mündet. Wer es auf die Spitze treiben möchte, kann diesen Prozentwert noch von einem Helligkeitssensor beeinflussen lassen, vom Regensensor, oder vom gemeldeten Bewölkungsgrad eines Wetterdienstes... 8)

Voraussetzungen:
  • Der SSH-Zugang auf der CCU2 muss aktiviert sein.
  • CUxD muss installiert sein.
  • In der WebUI unter "Einstellungen - Systemsteuerung - Zeit-/Positionseinstellung" muss die richtige Position eingetragen sein. Dieser Wert wird für die Abfrage der Daten von calsky.com verwendet.
Einrichtung:
  1. im CUxD ein "(28) System-Exec" Gerät mit der Seriennummer 1 anlegen
  2. im CUxD ein "(28) System-Timer" Gerät mit der Seriennummer 1 und Namen "TriggerRolladen" anlegen
  3. Systemvariablen für die Website-Werte anlegen (alle Zeichenkette):
    • Sonnenaufgang
    • Sonnenuntergang
    • BeginBuergDaemm
    • EndBuergDaemm
    • BeginNautDaemm
    • EndNautDaemm
    • Tageslaenge
    • BeginAstroDaemm
    • EndAstroDaemm
  4. Systemvariablen für die Steuerung anlegen:
    • RolladenZP (Zeichenkette): Dynamisch errechneter Zeitpunkt, nur zur Info
    • RolladenzeitpunktBasis (Zeichenkette): Name der obigen Variable, die als Ausgangszeitpunkt für die Rolläden dienen soll. (z.B. "EndBuergDaemm")
    • RolladenzeitpunktAnpassung (Zahl -100/100): Prozentwert, um den der Rolladenzeitpunkt in Richtung des nächsten (oder vorherigen) Zeitpunkts verschoben werden soll. Dabei ist "100%" identisch mit dem nächsten (vorherigen) Zeitpunkt.
      Beispiel: Sonnenuntergang = 17:46, EndBuergDaemm = 18:10, Rolladenzeitpunkt = "Sonnenuntergang", RolladenzeitpunktAnpassung = 50%
      Somit wird auf die Sonnenuntergangszeit (17:46) die Hälfte der Zeitspanne zu EndBuergDaemm draufgeschlagen, die Rolläden fahren also um 17:58 runter.
  5. Ein "Rolladen runter" Programm erstellen, das alle Rolläden zum Timer_Event des CUxD-Timers runterfährt, oder um 22:30 (oder wann auch immer). Letzteres dient quasi als Cut-off-Zeit, wenn der dynamische Dämmerungspunkt im Hochsommer noch später sein sollte. (siehe angehängter Screenshot)
  6. per SSH "GetAstroDates.sh" erstellen (unter /usr/local/):

    Code: Alles auswählen

    #!/bin/bash
    
    if [ $# -lt 2 ]; then
    	echo "Fehlerhafter Aufruf!"
    	echo "Es müssen 2 Parameter übergeben werden, der Erste ist der Längengrad, der Zweite der Breitengrad:"
    	echo "z. B. ./GetAstroDates.sh 8:12:34.35698 50:12:34.13711"
    fi
    
    wget -q --header="User-Agent: Mozilla" "http://www.calsky.com/cs.cgi/Sun/2?lang=de&showtwilight=true&hideglos=true&dateNow&lon=${1}&lat=${2}" -O - | sed -e 's/[<]/\n&/g;s/&nbsp;//g;/class="caltab"/,/<\/table>/!d' | sed -e 's/\(<b>\|<tt>\)//g;/\(Aufgang\|Untergang\|Begin\|Morgen\)/!d;s/\(Ende\|Abend\|Tag\)/\n&/g' | sed -e ':a;N;$!ba;s/\n/;/g;s/ //g;s/:/-/g;s/h/:/g;s/m//g;s/ ;/;/g'
    
  7. HomeMatic-Script "AstroDatenHolen" erstellen und auf tägliche Ausführung um 1:30 programmieren:

    Code: Alles auswählen

    
    ! Diese Werte an den persönlichen Geschmack anpassen
    var RollZeit1 = "Sonnenuntergang";
    var RollProz = 50.0;
    
    var cmd;
    var Return;
    string Tmp;
    real val;
    var Long;
    var Lat;
    
    var Rest;
    var Grad;
    var Min;
    var Sek;
    var Hdstl;
    
    var RollZeit2;
    var Rolladenzeit;
    var Index = 0;
    var Found;
    
    	! GeoPosition auslesen und in Dezimal nach Grad, Min, Sek umwandeln
    Grad = 1 * system.Longitude();
    Rest = system.Longitude() - Grad;
    Min = 1 * Rest * 60;
    Rest = (Rest * 60) - Min;
    Sek = 1 * Rest * 60;
    Rest = (Rest * 60) - Sek;
    Hdstl = 1 * Rest * 100;
    Long = Grad # ":" # Min # ":" # Sek # "." # Hdstl;
    
    Grad = 1 * system.Latitude();
    Rest = system.Latitude() - Grad;
    Min = 1 * Rest * 60;
    Rest = (Rest * 60) - Min;
    Sek = 1 * Rest * 60;
    Rest = (Rest * 60) - Sek;
    Hdstl = 1 * Rest * 100;
    Lat = Grad # ":" # Min # ":" # Sek # "." # Hdstl;
    
    	! Befehl zusammenbauen
    cmd = "/usr/local/GetAstroDates.sh " # Long # " " # Lat;
    
    	! Befehl ausführen: Werte von Website holen
    dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(cmd);
    dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
    Return = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
    
    	! Werte auslesen und in Systemvariablen schreiben
    Tmp = Return.StrValueByIndex(";",0).StrValueByIndex("-", 1);
    if (Tmp.Find(".") > -1) {;
    	val = "0." # Tmp.StrValueByIndex(".", 1);
    	val = "0" # val.ToFloat() * 60;
    	Tmp = Tmp.StrValueByIndex(".", 0) # ":" # val.Substr(val.Find(".") - 2, 2);
    }
    dom.GetObject("Sonnenaufgang").State(Tmp);
    
    Tmp = Return.StrValueByIndex(";",1).StrValueByIndex("-", 1);
    if (Tmp.Find(".") > -1) {;
    	val = "0." # Tmp.StrValueByIndex(".", 1);
    	val = "0" # val.ToFloat() * 60;
    	Tmp = Tmp.StrValueByIndex(".", 0) # ":" # val.Substr(val.Find(".") - 2, 2);
    }
    dom.GetObject("Sonnenuntergang").State(Tmp);
    
    Tmp = Return.StrValueByIndex(";",2).StrValueByIndex("-", 1);
    if (Tmp.Find(".") > -1) {;
    	val = "0." # Tmp.StrValueByIndex(".", 1);
    	val = "0" # val.ToFloat() * 60;
    	Tmp = Tmp.StrValueByIndex(".", 0) # ":" # val.Substr(val.Find(".") - 2, 2);
    }
    dom.GetObject("BeginBuergDaemm").State(Tmp);
    
    Tmp = Return.StrValueByIndex(";",3).StrValueByIndex("-", 1);
    if (Tmp.Find(".") > -1) {;
    	val = "0." # Tmp.StrValueByIndex(".", 1);
    	val = "0" # val.ToFloat() * 60;
    	Tmp = Tmp.StrValueByIndex(".", 0) # ":" # val.Substr(val.Find(".") - 2, 2);
    }
    dom.GetObject("EndBuergDaemm").State(Tmp);
    
    Tmp = Return.StrValueByIndex(";",4).StrValueByIndex("-", 1);
    if (Tmp.Find(".") > -1) {;
    	val = "0." # Tmp.StrValueByIndex(".", 1);
    	val = "0" # val.ToFloat() * 60;
    	Tmp = Tmp.StrValueByIndex(".", 0) # ":" # val.Substr(val.Find(".") - 2, 2);
    }
    dom.GetObject("BeginNautDaemm").State(Tmp);
    
    Tmp = Return.StrValueByIndex(";",5).StrValueByIndex("-", 1);
    if (Tmp.Find(".") > -1) {;
    	val = "0." # Tmp.StrValueByIndex(".", 1);
    	val = "0" # val.ToFloat() * 60;
    	Tmp = Tmp.StrValueByIndex(".", 0) # ":" # val.Substr(val.Find(".") - 2, 2);
    }
    dom.GetObject("EndNautDaemm").State(Tmp);
    
    Tmp = Return.StrValueByIndex(";",6).StrValueByIndex("-", 1);
    if (Tmp.Find(".") > -1) {;
    	val = "0." # Tmp.StrValueByIndex(".", 1);
    	val = "0" # val.ToFloat() * 60;
    	Tmp = Tmp.StrValueByIndex(".", 0) # ":" # val.Substr(val.Find(".") - 2, 2);
    }
    dom.GetObject("Tageslaenge").State(Tmp);
    
    Tmp = Return.StrValueByIndex(";",7).StrValueByIndex("-", 1);
    if (Tmp.Find(".") > -1) {;
    	val = "0." # Tmp.StrValueByIndex(".", 1);
    	val = "0" # val.ToFloat() * 60;
    	Tmp = Tmp.StrValueByIndex(".", 0) # ":" # val.Substr(val.Find(".") - 2, 2);
    }
    dom.GetObject("BeginAstroDaemm").State(Tmp);
    
    Tmp = Return.StrValueByIndex(";",8).StrValueByIndex("-", 1);
    if (Tmp.Find(".") > -1) {;
    	val = "0." # Tmp.StrValueByIndex(".", 1);
    	val = "0" # val.ToFloat() * 60;
    	Tmp = Tmp.StrValueByIndex(".", 0) # ":" # val.Substr(val.Find(".") - 2, 2);
    }
    dom.GetObject("EndAstroDaemm").State(Tmp);
    
    	! schreibe Rolladen-Konfiguration
    dom.GetObject("RolladenzeitpunktBasis").State(RollZeit1);
    dom.GetObject("RolladenzeitpunktAnpassung").State(RollProz);
    
    	! finde Variable für RollZeit1
    RollZeit2 = "Sonnenuntergang,EndBuergDaemm,EndNautDaemm,EndAtroDaemm,BeginAtroDaemm,BeginNautDaemm,BeginBuergDaemm,Sonnenaufgang";
    foreach(Tmp, RollZeit2.Split(",")) {;
         if (Tmp == RollZeit1) {;
    		Found = Index;
    	} else {;
    		Index = Index + 1;
    	}
    }
    	! bestimme Variable für RollZeit2
    if (RollProz < 0) {;
    	RollZeit2 = RollZeit2.StrValueByIndex(",", Found - 1);
    } else {;
    	RollZeit2 = RollZeit2.StrValueByIndex(",", Found + 1);
    }
    
    	! Zeiten einlesen
    RollZeit1 = dom.GetObject(RollZeit1).Variable();
    RollZeit2 = dom.GetObject(RollZeit2).Variable();
    
    RollZeit1 = system.Date("%F") # " " # RollZeit1;
    RollZeit1 = RollZeit1.StrValueByIndex(".", 0);
    RollZeit1 = RollZeit1.ToTime().ToInteger();
    
    RollZeit2 = system.Date("%F") # " " # RollZeit2;
    RollZeit2 = RollZeit2.StrValueByIndex(".", 0);
    RollZeit2 = RollZeit2.ToTime().ToInteger();
    
    	! finale Zeit berechnen
    if (RollProz < 0) {;
    	Rolladenzeit = RollZeit1 + (0.0 + RollZeit1 - RollZeit2)  * RollProz / 100.0;
    } else {
    	Rolladenzeit = RollZeit1 + (0.0 + RollZeit2 - RollZeit1)  * RollProz / 100.0;
    }
    
    	! Zeit speichern und Timer setzen
    Rolladenzeit = Rolladenzeit.ToTime().Format("%T");
    dom.GetObject("RolladenZP").State(Rolladenzeit);
    dom.GetObject("CUxD.CUX2800001:1.TIMER_SET").State(Rolladenzeit);
    
    
  8. Freuen... 8) :mrgreen:
Viel Spaß beim Nachbauen!

Linuzer

PS: Ich werde hier im ersten Post die Änderungen/Fehlerkorrekturen aus dem Thread einpflegen, sodass hier immer die aktuellste/richtige Version steht.

Update 25.02.2014:
Wenn einstellige Sekunden von der Website gemeldet wurden, wurden die Werte nicht korrekt verarbeitet.

Update 07.05.2014:
  • GetAstroDates.sh aktualisiert
  • Pfad für GetAstroDates.sh ("usr/local/") harmonisiert (Punkt 6 der Anleitung und Aufruf im Script; Es ist egal, wo es steht, nur müssen die Pfade übereinstimmen)
  • Variablenname "RolladenZP" harmonisiert
  • Variablenname "EndAstroDaemm" und "BeginAstroDaemm" Rechtschreibfehler korrigiert
Dateianhänge
Unbenannt.jpg
Zuletzt geändert von linuzer am 07.05.2014, 10:18, insgesamt 6-mal geändert.

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Ultimative Rolladensteuerung

Beitrag von Homoran » 11.02.2014, 19:33

Hallo,
wenn es das ist, was ich seit laaaangem suche und genauso lange vor mir herschiebe selbst irgendwie zu erstellen, dann ist das Spitze!!!!
ich hätte das nicht so wissenschaftlich präzise machen können, da hätte ich versucht durch irgendwelche Faktoren auf ähnliche Zeiten zu kommen.
Werde das baldmöglichst ausprobieren.

Nur noch einige Fragen:
Es geht hier nur um die Abenddämmerung, oder???
wenn ja, kann man das auch auf die Morgendämmerung berechnen?

kann man den Cutoff als Variable gestalten, ohne das Skript komplett zu zerschießen?
Das gilt bei der Morgendämmerung erst recht. (Urlaub / Wochenende)

[edit] geht das auch auf der CCU1??[/EDIT]

Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

linuzer
Beiträge: 19
Registriert: 11.02.2014, 10:51

Re: Ultimative Rolladensteuerung

Beitrag von linuzer » 11.02.2014, 20:34

Hallo Rainer,

ich habe es im Moment nur für die Abenddämmerung implementiert, aber die Zeiten werden ja auch für in der Früh abgeholt. Also "Beginn Bürgerliche Dämmerung" ist in der Früh vor Sonnenaufgang (und geht bis zum Sonnenaufgang), "Ende Bürgerliche Dämmerung" ist am Abend nach Sonnenuntergang (und wird von der Nautischen Dämmerung gefolgt).

Man müsste für die Funktion in der Früh nur einen 2. Timer verwenden, der am Ende des Skriptes analog mit der richtigen Zeit gefüttert wird, dann kann man das Programm zum Rolladen hochfahren auf diesen 2. Timer hängen... Bei mir besteht dafür nur keine Notwendigkeit, weil ich in der Früh eigentlich immer zur selben Zeit aufstehe (außer vielleicht am Wochenende/Feiertag...)

Die Cut-Off-Zeit wird nirgends weiter verwendet, ist also quasi variabel, weil individuell und jederzeit im WebUI verstellbar (oder habe ich Deine Frage nicht verstanden?)

Zur CCU1 kann ich nichts sagen, weil ich die nicht habe. Gibt es denn den CUxD für die CCU1? Dann könnte es klappen. Auf der CPU läuft ja eigentlich nichts (ausser einmal in der Nacht die Webabfrage).

Gruß,
linuzer

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Ultimative Rolladensteuerung

Beitrag von Homoran » 11.02.2014, 20:51

Habe schon alles angelegt incl. der CuxD-Geräte, weiß aber nicht ob das mit dem sh-script auch darauf laufen kann (habe von linux noch nicht die Ahnung). Da stand was von mozilla drin ;-)
linuzer hat geschrieben:Die Cut-Off-Zeit wird nirgends weiter verwendet, ist also quasi variabel, weil individuell und jederzeit im WebUI verstellbar (oder habe ich Deine Frage nicht verstanden?)
Am Morgen wäre die Cut-Off zeit (nach dem Motto; hochfahren um SA - 0,5x(SA-BBüDä) frühestens jedoch um 7:00 Uhr.) wesentlich wichtiger, weil man das variabel an Wochenenden (frühestens jedoch um 08:30) handhaben wollte.

War aber ein Missverständnis meinerseits. Habe gerade gemerkt, dass dies erst im Programm "Rolladen runter" und nicht im Skript selbst berücksichtigt wird. Sorry für die Verwirrung.


Danke
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

linuzer
Beiträge: 19
Registriert: 11.02.2014, 10:51

Re: Ultimative Rolladensteuerung

Beitrag von linuzer » 12.02.2014, 17:21

Hallo Rainer,
Am Morgen wäre die Cut-Off zeit (nach dem Motto; hochfahren um SA - 0,5x(SA-BBüDä) frühestens jedoch um 7:00 Uhr.) wesentlich wichtiger, weil man das variabel an Wochenenden (frühestens jedoch um 08:30) handhaben wollte.
Also, nur dass du dir keine unnötige Arbeit machst: Wenn eh vor 7:00, bzw. 8:30 nichts passieren soll, dann liegt der Sonnenaufgang und vor allem die vorherige Dämmerung die meiste Zeit im Jahr davor! Eine darauf basierte dynamische Steuerung wäre in dieser Zeit also wirkungslos. Und selbst wenn Ende Dezember der Zeitpunkt danach sein sollte: Sollten nicht auch dann die Rolläden hochfahren, wenn man tatsächlich aufsteht (zum lüften, etc.) und nicht erst eine halbe Stunde später?

Aber das soll jeder machen wie er möchte, das waren halt die Überlegungen, warum ich die Rolläden in der Früh nicht an die Dämmerung gekoppelt habe. Wahrscheinlich wäre es praktischer, die Rolläden in der Früh an einen "Aufstehsensor" zu hängen, wie er hier im Forum irgendwo schonmal beschrieben wurde, oder noch besser, die Rolläden gleich selbst als "Wecker" zu verwenden... :wink:

Ah, und das mit dem "Mozilla" ist nur der Client-Erkennungs-String, da ohne dem die Website keine Werte ausspuckt -- wahrscheinlich eine Art Schutzmechanismus.

Viele Grüße,

linuzer

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Ultimative Rolladensteuerung

Beitrag von Homoran » 12.02.2014, 17:40

danke,
habe eben dann noch das Skript in /usr/local/addons kopiert, mal sehen, wie morgen die Daten aussehen. Im Moment sind sie noch leer (?).
rolladen02.jpg
linuzer hat geschrieben:A...Und selbst wenn Ende Dezember der Zeitpunkt danach sein sollte: Sollten nicht auch dann die Rolläden hochfahren, wenn man tatsächlich aufsteht (zum lüften, etc.) und nicht erst eine halbe Stunde später?
Ich hätte versucht eine Formel zu erstellen, in der im "tiefsten Winter" die Rolladenzeit sogar nach dem Sonnenuntergang gelegen hätte da es meist trotz Astrozeit noch so dunkel ist, dass man Licht anmacht. Und im Schlafzimmer muss das beim Aufstehen nicht unbedingt sein ;-)

Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Ultimative Rolladensteuerung

Beitrag von Homoran » 14.02.2014, 18:56

Nachdem nach Tagen die Variablen immer noch nicht gefüllt waren, habe ich versucht den Dingen auf den Grund zu gehen.
Das erste, was mir auffiel war, dass das Skript AstroDatenHolen das shell-script GetAstroDates.sh unter dem Pfad /usr/local/ sucht und nicht unter /usr/local/addons.
Also das script dahin verschoben.
beim Aufruf über Putty kam dann, dass Länge und Breite fehlen.

Wenn ich woanders etwas programmiere, gebe ich immer mal wieder den Inhalt von Variablen heraus, um zu sehen was bis zu dieser Zeile passiert ist.
Also hier an dieser Stelle meine debug-Variable mit Inhalt gefüllt:

Code: Alles auswählen

cmd = "/usr/local/GetAstroDates.sh " # Long # " " # Lat;

dom.GetObject("a_wieviel").State(cmd);
den Inhalt der dann in die Variable geschrieben wurde habe ich dann in puTTY eingegeben. Da kamm es zu einer Fehlermeldung, mit der ich als Linux-Noob nichts anfangen kann:

Code: Alles auswählen

~ # /usr/local/GetAstroDates.sh 7:0:0.0 50:54:0.0
wget: illegal option -- U
BusyBox v1.00 (2013.07.04-13:55+0000) multi-call binary

Usage: wget [-c|--continue] [-q|--quiet] [-O|--output-document file]
                [--header 'header: value'] [-Y|--proxy on/off] [-P DIR] url

wget retrieves files via HTTP or FTP

Options:
        -c      continue retrieval of aborted transfers
        -q      quiet mode - do not print
        -P      Set directory prefix to DIR
        -O      save to filename ('-' for stdout)
        -Y      use proxy ('on' or 'off')
Ich bitte um Hilfe
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

linuzer
Beiträge: 19
Registriert: 11.02.2014, 10:51

Re: Ultimative Rolladensteuerung

Beitrag von linuzer » 14.02.2014, 19:25

Der Pfad ist tatsächlich mein Fehler, bei mir liegt es auch direkt unter /use/local. Nachträglich dachte ich nur, er würde besser nach addon gehören, was aber eigentlich egal ist... Sorry für die Verwirrung!

Die andere Fehlermeldung ist echt interessant, denn sie würde bedeuten, dass auf der CCU1 eine andere Version von wget läuft, die den Parameter "-U" nicht kennt. Dieser soll nur eine Browser-ID mitschicken, weil die Website (zumindest bei mir) sonst keine Daten ausgespuckt hat. Probier doch mal zwei Dinge:

1. Ihn komplett wegzulassen

2. den Parameter "--header" zu verwenden, vielleicht tut der das selbe.

Hoffe eins von beiden klappt!

VG
Linuzer

linuzer
Beiträge: 19
Registriert: 11.02.2014, 10:51

Re: Ultimative Rolladensteuerung

Beitrag von linuzer » 14.02.2014, 19:27

PS: Du kannst über putty den Skript auch direkt aufrufen, musst also nicht über Nacht warten.

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Ultimative Rolladensteuerung

Beitrag von Homoran » 14.02.2014, 19:33

linuzer hat geschrieben:Du kannst über putty den Skript auch direkt aufrufen, musst also nicht über Nacht warten.
...oder das Programm, das sonst um 01:30 gestartet wird mit der Hand starten ;-)

-U und 'Mozilla' gelöscht:

Code: Alles auswählen

 /usr/local/GetAstroDates.sh 7:0:0.0 50:54:0.0
wget: server returned error 403: HTTP/1.1 403 Forbidden
/usr/local #
-U 'Mozilla' ausgetauscht gegen
-header 'Mozilla' oder - header 'header: Mozilla'

Code: Alles auswählen

/usr/local # /usr/local/GetAstroDates.sh 7:0:0.0 50:54:0.0
wget: illegal option -- h
BusyBox v1.00 (2013.07.04-13:55+0000) multi-call binary

Usage: wget [-c|--continue] [-q|--quiet] [-O|--output-document file]
                [--header 'header: value'] [-Y|--proxy on/off] [-P DIR] url

wget retrieves files via HTTP or FTP

Options:
        -c      continue retrieval of aborted transfers
        -q      quiet mode - do not print
        -P      Set directory prefix to DIR
        -O      save to filename ('-' for stdout)
        -Y      use proxy ('on' or 'off')

Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“