"Beschattung" oft diskutiert

Begonnen von Rennmofa, 29 Juli 2018, 12:11:54

Vorheriges Thema - Nächstes Thema

Rennmofa

Hallo ihr Lieben,

Ich bin ein relativer Anfänger und nur durch viel Lesen und Kopieren bin ich dort wo ich aktuell bin.

Verstehe Teils die geschrieben Texte, aber dann fehlt mir leider doch wieder etwas....

Ich hoffe dieses oft besprochene Thema wirkt jetzt nicht nervend, aber habe schon viel probiert und komme nicht weiter.

Hänge mal ein paar Screenshots in den Anhang damit mal über mein System drüber geschaut werden kann.H
Problem: Rollos fahren um eine bestimmte zeit hoch und auch runter wenn die sonne 5 Grad unterm Horizont steht, nun würde ich gerne über das YahooWetter "Modul"? die rollos auch fahren lassen wenn es halt warm wird zur Beschattung.

Dort habe ich dann viel nachgelesen und mein bestes probiert, aber es passiert einfach nicht wenn die werte erreicht werden :-(

Hoffe die Geduld und die Teils kommenden ( blöden ) Fragen könnt ihr gut verarbeiten.

Vielen Dank schonmal :-)

cheanrod

#1
Hallo,

poste bitte mal ein list des Device in code-Tags.

Rennmofa

define Test_Sonne notify YahooWetter {
if (Value("Beschattung_auto") eq "aktiv"){
my $Temp= ReadingsVal("YahooWetter","temp_c","999");;
my $Sonne= ReadingsVal("YahooWetter","fc1_condition","kein Wert");;
Log 1, "$Temp, $Sonne, ";;
}
if ($Temp >= 23) && ($Sonne =~ m/sonnig/) && (Value("RolloSchlafzimmer; RolloWohnzimmer; RolloKueche")!=20){
fhem("set RolloSchlafzimmer 20;set RolloWohnzimmer 20;set RolloKueche 20");;
Log 1, "Beschattungsposition wird angefahren...";;
}elsif (($Temp<23) && (Value("RolloSchlafzimmer; RolloWohnzimmer; RolloKueche")==20)){
fhem ("set RolloSchlafzimmer off;set RolloWohnzimmer off;set RolloKueche off");;
Log 1,"Rollladen wird geöffnet...";;
} elsif (($Temp==999) || ($Sonne eq "kein Wert")) {
Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert, $Temp, $Sonne, ";;
}
}

cheanrod

Ich meinte den FHEM-Befehl ,,list". In Deinem Fall list Test_Sonne in der FHEM-Eingabezeile.

Rennmofa

Internals:
CFGFN
DEF define Test_Sonne notify YahooWetter {\
if (Value("Beschattung_auto") eq "aktiv"){
my $Temp= ReadingsVal("YahooWetter","temp_c","999");;
my $Sonne= ReadingsVal("YahooWetter","fc1_condition","kein Wert");;
Log 1, "$Temp, $Sonne, ";;
}
if ($Temp >= 23) && ($Sonne =~ m/sonnig/) && (Value("RolloSchlafzimmer; RolloWohnzimmer; RolloKueche")!=20){
fhem("set RolloSchlafzimmer 20;set RolloWohnzimmer 20;set RolloKueche 20");;
Log 1, "Beschattungsposition wird angefahren...";;
}elsif (($Temp<23) && (Value("RolloSchlafzimmer; RolloWohnzimmer; RolloKueche")==20)){
fhem ("set RolloSchlafzimmer off;set RolloWohnzimmer off;set RolloKueche off");;
Log 1,"Rollladen wird geöffnet...";;
} elsif (($Temp==999) || ($Sonne eq "kein Wert")) {
Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert, $Temp, $Sonne, ";;
}\
}
NAME Test_Sonne
NR 6619
NTFY_ORDER 50-Test_Sonne
REGEXP define
STATE active
TYPE notify
READINGS: 2018-07-29 11:51:51 state active
Attributes:
room 80_Zentrale_Funktion


Ich hoffe du meinst das  :)

Gernott

Zitat von: Rennmofa am 29 Juli 2018, 12:11:54
Problem: Rollos fahren um eine bestimmte zeit hoch und auch runter wenn die sonne 5 Grad unterm Horizont steht, nun würde ich gerne über das YahooWetter "Modul"? die rollos auch fahren lassen wenn es halt warm wird zur Beschattung.
Die meiner Meinung zuverlässigste Beschattungssteuerung ist die mit Meßwerten aus dem zu beschattenden Raum. Dazu den Innenraumsensor von Dirk mit Licht und Temperatur an geeigneter Stelle im Raum platzieren und wenn es zu hell wird, dann schrittweise das Rollo schließen. Das kann man indviduell per Raum mit einem DOIF machen.

Gruß
G.

Rennmofa

ZitatDie meiner Meinung zuverlässigste Beschattungssteuerung ist die mit Meßwerten aus dem zu beschattenden Raum. Dazu den Innenraumsensor von Dirk mit Licht und Temperatur an geeigneter Stelle im Raum platzieren und wenn es zu hell wird, dann schrittweise das Rollo schließen. Das kann man indviduell per Raum mit einem DOIF machen.

Gruß
G.

Noch habe ich keine Temperatur Sensoren in den jeweiligen Räumen, ausser im Bad, da wird die aktuelle Temp.über mein Heizungstermostat angezeigt von Homematic.
Allerdings da noch nicht den Aktor für das Rollo eingebaut :D aber danke für die Antwort, früher oder später möchte ich auch in diese richtung gehen
gruß Torsten

cheanrod

Zitat von: Rennmofa am 29 Juli 2018, 14:05:18
Ich hoffe du meinst das  :)

Ja, das meinte ich. Wie man im Listing sehen kann, ist die Definition kaputt. Klicke mal auf ,,DEF" und entferne alles in der Definition vor YahooWeather. Außerdem kannst Du dann noch gleich die überflüssigen Backslashes und doppelten Semikolons aus dem Code löschen.

Rennmofa

ZitatJa, das meinte ich. Wie man im Listing sehen kann, ist die Definition kaputt. Klicke mal auf ,,DEF" und entferne alles in der Definition vor YahooWeather. Außerdem kannst Du dann noch gleich die überflüssigen Backslashes und doppelten Semikolons aus dem Code löschen.

jetzt 2 fragen, woher sehe ich das der kaputt ist ?

und YahooWeather steht bei mir nicht hab da nur in der ersten zeile YahooWetter stehen wenn ich davor alles weg mache und speichern will kommt quasi das :

Global symbol "$Temp" requires explicit package name at (eval 8231) line 7.
syntax error at (eval 8231) line 7, near ") &&"
Global symbol "$Sonne" requires explicit package name at (eval 8231) line 7.
syntax error at (eval 8231) line 10, near "}elsif"
Global symbol "$Temp" requires explicit package name at (eval 8231) line 10.
syntax error at (eval 8231) line 13, near "} elsif"
Global symbol "$Temp" requires explicit package name at (eval 8231) line 13.
Global symbol "$Sonne" requires explicit package name at (eval 8231) line 13.
syntax error at (eval 8231) line 15, near "; }"


kann das leider grad nur alles mit dem handy machen weil ich nicht zuhause bin.

Rennmofa

Update: Hab das define vor dem Test_Sonne mal weg gemacht und ka warum macht der mir jetzt das Rollo in der Küche auf Schlafen ( 20 ) also so wie es sein sollte, das im wohnzimmer komplett zu und im schlafzimmer auf....

kann es sein das ich die set befehle anders setzen muss in den klammern ?

cheanrod

Zitat von: Rennmofa am 29 Juli 2018, 15:15:38
jetzt 2 fragen, woher sehe ich das der kaputt ist ?

Klicke mal den Link "Raw Definition" auf der Übersichtsseite für Dein notify. Im Editor müsstest Du sehen, dass mehrere Bestandteile in der Definition des Device doppelt vorkommen. Das geht natürlich nicht, da die Definition für notify vorgeschriebenen Syntax entsprechen muss. Schau bitte mal in die Commandref, wie die grundlegende Struktur für ein notify aussehen muss.

Zitat von: Rennmofa am 29 Juli 2018, 15:15:38
und YahooWeather steht bei mir nicht hab da nur in der ersten zeile YahooWetter stehen wenn ich davor alles weg mache und speichern will kommt quasi das :

Ich meinte natürlich YahooWetter. Die Fehlermeldungen beim Speichern zeigen, dass der Perl-Code innerhalb der {} Fehler hat. Daher habe ich ja geschrieben, dass Du dort erstmal aufräumen musst. Immer vorausgesetzt, Du machst das alles im DEF-Editor und speicherst danach mit einem Klick auf modify Test_Sonne.