Hallo,
bin neu hier und probiere schone die ganze Zeit eine einfache Funktion mit einer IT Steckdose zu machen.
Die IT Steckdosen koennen anscheinend nicht die einfache Funktion on-for-timer. Die koennen anscheinend bei FHEM nur on und off.
Ich moechte eine Pumpe die an der IT Steckdose haengt, alle 15 minuten, fuer 15 Minuten anmachen. Also, 15 Minuten an, 15 Minuten aus.
Habe folgendes probiert, funktioniert aber nicht:
define pumpean at +*00:15:00 set PoolPump on-for-timer 720
da bekomme ich folgenden Fehler im Log:
2013.09.02 21:09:41 3: pumpean: Unknown argument on-for-timer, choose one of off on
Weiss jemand wie ich das hin bekomme? danke.
define pumpean at +*00:15:00 { fhem("set PoolPump on"); fhem("define pumpeaus at +00:12 set PoolPump off"); }
Boah, das war schnell, danke. Habe keine Ahnung wie das Funktioniert...muss ich erst mal nachlesen.
Frage: warum 12 Minuten im zweiten Teil, oder sollte das auch 15 sein?
danke!
weil 720 Sekunden nach meiner Rechnung 12 Minuten sind.
Stimmt. Sorry, mein Fehler. Ich wollte ja jeweils 15 minuten an, minuten aus.
Habe es gerade probiert, bekomme folgenden Fehler:
Unknown command fhem("define, try help.
Unknown command }, try help.
Hallo,
ich bin ebenfalls bei meinen ersten Schritten mit FHEM und will auch so eine "Intervall Schaltung" definieren. Gibt es da eigentlich auch die Möglichkeit, so etwas wie "immer um 20 nach" festzulegen, ähnlich wie bei cron? Ich würde gerne um voll und halb zwei Werte vergleichen und dann für 20 Minuten einen Aktor schalten.
Achso, wenn Du alle 15 Minuten die Pumpe für 15 Minuten einschalten willst, ist das recht einfach ... die Pumpe läuft dann nämlich immer, wahrscheinlich kommen daher im Beispiel die 12 Minuten Einschaltdauer ;-)
krimskrams
Zitat von: zgadgeter schrieb am Mo, 02 September 2013 21:39Stimmt. Sorry, mein Fehler. Ich wollte ja jeweils 15 minuten an, minuten aus.
dann muss es "vorne" +*00:30 und "hinten" +00:15 heißen
ZitatUnknown command fhem("define, try help.
Unknown command }, try help.
hast Du Dich irgendwo vertippt? Mach doch mal ein List von Deiner Definition und poste die hier
Zitat von: krimskrams schrieb am Mo, 02 September 2013 21:50Gibt es da eigentlich auch die Möglichkeit, so etwas wie "immer um 20 nach" festzulegen, ähnlich wie bei cron?
Natürlich
define bla at +*01:00 {}
attr bla alignTime 00:20
Damit wird das at erstmal alle Stunde ausgeführt, und "zusätzlich" einmal um 00:20 Uhr, wobei dann der Zähler neu gestartet wird. Das nächste Ausführen erfolgt dann um 01:20 usw.
Zitat von: krimskrams schrieb am Mo, 02 September 2013 21:50wahrscheinlich kommen daher im Beispiel die 12 Minuten Einschaltdauer
wie schon gesagt: die 12 Minuten kamen von den vom Fragesteller ursprünglich vorgegebenen 720 Sekunden.
Zitat von: betateilchen schrieb am Mo, 02 September 2013 21:52Zitat von: zgadgeter schrieb am Mo, 02 September 2013 21:39Stimmt. Sorry, mein Fehler. Ich wollte ja jeweils 15 minuten an, minuten aus.
dann muss es "vorne" +*00:30 und "hinten" +00:15 heißen
ZitatUnknown command fhem("define, try help.
Unknown command }, try help.
hast Du Dich irgendwo vertippt? Mach doch mal ein List von Deiner Definition und poste die hier
Ich habe deine Zeile Kopiert und eingetragen, also nicht selbst getippt. Habe allerdings die 12 auf 15 gesetzt.
Habe jetzt den command geändert so das pumpean auf 30 minuten steht, bekomme aber folgendes im Log:
2013.09.02 21:55:51 3: pumpean: Unknown command {, try help.
2013.09.02 22:10:51 3: pumpean: Unknown command {, try help.
Frage: wie kann ich diesen command komplett löschen so das ich neu anfangen kann?
danke fuer die Hilfe.
Zunächst mal:
define pumpean at +*00:15:00 { fhem("set PoolPump on"); fhem("define pumpeaus at +00:12 set PoolPump off"); }
kann man auch kürzer haben:
define pumpean at +*00:15:00 set PoolPump on ; define pumpeaus at +00:12 set PoolPump off
Insbesondere gibt es in dem Statement keinen PERL Anteil, also ist die {} Klammerung nicht nötig.
Dieser Teil hier:
{ fhem("xy...
bedeutet "übersetzt":
FHEM soll PERL sagen, das PERL FEHM sagen soll XY zu machen.So oder so:
Das macht (beides) die Pumpe aber NICHT "15 Minuten an, 15 Minuten aus".
Etwas irreführens ist hier schon die Eingangsfrage von zgdageter:
Zitatalle 15 minuten, fuer 15 Minuten anmachen. Also, 15 Minuten an, 15 Minuten aus.
Alle 15 Minuten für 15 Minuten anmachen heisst nämlich: Pumpe läuft immer, gelle? ;-)
Oh, ich sehe gerade, hast du schon bemerkt. Sorry.
Okay, also ich würde das dann so machen:
define pumpean at +*00:30:00 set PoolPump on ; define pumpeaus at +00:15:00 set PoolPump off
Beachte, das Betateilchens Code zwar aus meiner Sicht etwas umständlich ist aber an sich trotzdem geht. Dass er den Umweg über PERL geht dürfte trotzdem keine Fehlermeldung erzeugen.
Die Fehlermeldungen irritieren mich also etwas. Ich vermute, das beim Kopieren irgendwelche verdeckten Zeichen die im Code der Webseite sind mitkopiert wurden.
ZitatFrage: wie kann ich diesen command komplett löschen so das ich neu anfangen kann?
delete pumpean
eingeben. Und dann meinen Code mal per Hand eintippen, also nicht kopieren.
Zitat von: Zrrronggg! schrieb am Di, 03 September 2013 00:19Und dann meinen Code mal per Hand eintippen, also nicht kopieren.
Hallo und vielen Dank! Habe das jetzt per Hand eingegeben, und im Moment keine errors bekommen....werde es im Laufe des Tages beobachten.
Nochmals, danke.
Zitat von: Zrrronggg!Zunächst mal:
...
kann man auch kürzer haben:
Technisch hast Du zwar völlig recht, aber wenn es darum geht, didaktisch etwas verständlich darzustellen, bist Du eine ziemliche Niete. Man sollte nicht nur immer davon ausgehen, auf eine gestellte Frage die technisch im Augenblick am einfachsten erscheinendste Antwort zu geben, sondern man sollte, wenn man erkennt, dass die Frage von einem Anfänger kommt, versuchen, sich in das Problem hineinzudenken und nicht nur in die gestellte Frage.
Erstens ging es mir darum, dem Fragesteller (Anfänger) eine verständliche Lösung für sein Problem vorzuschlagen, und das Verstehen geht mit in Klammern zusammengefaßten Befehlen einfach leichter.
Zweitens heißt das zu schaltende Geräte Poolpump. Ich gehe deshalb davon aus, dass mit hoher Wahrscheinlichkeit als nächstes die Frage kommen wird "Wie mache ich das nun, dass das Schalten nur tagsüber/innerhalb eines bestimmten Zeitraumes erfolgt?" Das wäre auch logisch, denn normalerweise läßt man einen Poolpumpe nicht 24/7 laufen. Und spätestens dann brauchst Du die Klammern doch, weil dann Bedingungen ins Spiel kommen.
Zitat von: zgadgeterIch habe deine Zeile Kopiert und eingetragen, also nicht selbst getippt.
Mit copy und paste sollte man erst dann arbeiten, wenn man verstanden hat, WAS man da kopiert. Und das c&p aus Browsern kann in vielen Fällen aufgrund von Zeichensatzproblemen schiefgehen, vor allem, wenn man versucht, von einem Windows-Rechner auf einen Linux-Rechner zu kopieren.
Oh, ich wollte hier keinen Streit anfangen! Ich bin sehr dankbar fuer die Hilfe, alle Hilfe, die ich hier bekomme.
Und, es gibt bestimmt mehrere Wege das Fell von der Katze runter zu holen :).
Und, richtig verstanden habe ich weder das eine noch das andere...muss ich noch dran arbeiten.
Und, Betateilchen, Du hast recht, es wird die nächste Frage doch kommen :). Hatte gehofft das wenn ich verstanden hätte wie das Grundsätzliche funktioniert, werde ich selbst es hin bekommen die "weitere Frage" zu beantworten. Wie gesagt, da muss ich halt dran arbeiten.
Und, nochmals vielen dank alle für die Hilfe...und, seid nett zu einander...."Niete" ist kein schönes Wort :).
ZitatWenn es darum geht, didaktisch etwas verständlich darzustellen, bist Du eine ziemliche Niete.
Hm. Ich kommentiere deine Lösungen GERADE WEIL ich sie für didaktisch subotpimal empfinde.
ZitatMan sollte nicht nur immer davon ausgehen, auf eine gestellte Frage die technisch im Augenblick am einfachsten erscheinendste Antwort zu geben, sondern man sollte, wenn man erkennt, dass die Frage von einem Anfänger kommt, versuchen, sich in das Problem hineinzudenken und nicht nur in die gestellte Frage.
Genau. Aber vor allem sollte man auch dem Fragesteller dazu verhelfen, seine Fragen selbst zu beantworten. Dazu ist das Wichtigste, dass er das Prinzip kapiert.
ZitatErstens ging es mir darum, dem Fragesteller (Anfänger) eine verständliche Lösung für sein Problem vorzuschlagen, und das Verstehen geht mit in Klammern zusammengefaßten Befehlen einfach leichter.
Und genau da scheiden sich die Geister. Nach meiner eigenen Erfahrung von früher UND dem was ich hier im Forum lese haben die meisten Leute Probleme mit Klammereben und wann man welche Klammer einsetzen muss und ob und wann man PERL einsetzen muss. Ich versuche daher immer darauf abzuzielen, das die Leute kapieren wo Klammern hinmüssen und warum. BZW wo man keine braucht.
Deine Beispiele funktionieren, aber enthalten sehr oft Klammerebene und Involvierung von PERL die nicht notwendig sind. Einfach mal ALLE Befehle in
{ fhem(" "); }
ein zufassen macht die Sache doch wirklich nicht übersichtlicher. Und das ist doch eine wirklich exotische Lösung, die in der Form hier sonst keiner von den Helfern propagiert. Der Vorteil deiner Methode ist allerdings, dass sie der Kram dann leicht erweitern lässt, wenn man PERL tatsächlich braucht, ja du versuchst so zu formulieren, dass Leute die keine Ahnung haben automatisch mit höherer Wahrscheinlichkeit richtig ergänzen und der Code dann noch funktioniert.
ABER die Leute VERSTEHEN nicht warum das funktioniert. Sie verstehen nicht, warum die Klammern da sind und warum PERL involviert wurde oder nicht. Und dass bedeutet, das sie wenig später scheitern und Fehler nicht finden. Und deutlich länger wird der Code ausserdem.
ZitatIch gehe deshalb davon aus, dass mit hoher Wahrscheinlichkeit als nächstes die Frage kommen wird "Wie mache ich das nun, dass das Schalten nur tagsüber/innerhalb eines bestimmten Zeitraumes erfolgt?" Das wäre auch logisch, denn normalerweise läßt man einen Poolpumpe nicht 24/7 laufen. Und spätestens dann brauchst Du die Klammern doch, weil dann Bedingungen ins Spiel kommen.
Absolut, davon gehe ich auch aus. Und deine Methode hat die grössere Chance, dass er den Code so ergänzt, dass es tatsächlich funktioniert, bei mir muss er ein 2tes mal nachfragen.
Stimmt. ABER: Der Code funktioniert bei ihm in diesem Falle nur, weil er ohne Verständnis nach einem SCHEMA gearbeitet hat. Das nennt man "Cargo-Cult Programming"
Der Nutzer ist dann aber später kaum in der Lage, den Code zu debuggen, weil er nicht weiss, wozu die ganzen Klammern und Semikolons da drin sind. Er verfügt auch nicht über eigenes verständnis, mit dem er später grössere Probleme lösen kann. Sieh dir hier im Forum nur mal an, wieviel Threads von Problemen handeln, weil Leute die Klammern falsch setzen.
Mir wäre also lieber, er fragte noch mal nach, wenn er die von die antizipierten Fragestellungen hat. Und DANN erklären wir ihm, dass in diesen Fällen PERL involvieren muss und dass er dann die Klammern so und so setzen muss. Und dann versteht er das. Das sind am ANFANG sicher mehr Fragen, aber am später weniger.
Ich denke du gibst den Leuten die Wasser brauchen einen Brunnen Ich glaube es ist besser man zeigt Ihnen wie man den Brunnen baut. Das dauert am Anfang länger.
Zitat von: Zrrronggg! schrieb am Di, 03 September 2013 12:19Ich denke du gibst den Leuten die Wasser brauchen einen Brunnen Ich glaube es ist besser man zeigt Ihnen wie man den Brunnen baut. Das dauert am Anfang länger.
Ich war lange genug in der Entwicklungshilfe tätig, um zu erkennen, dass Du keinen blassen Schimmer davon hast, wovon Du hier redest.
ZitatUnd, richtig verstanden habe ich weder das eine noch das andere
Dann will ich's mal kurz versuchen:
Zitatdefine pumpean at +*00:30:00 set PoolPump on ; define pumpeaus at +00:15:00 set PoolPump off
define pumpean -> (irgendeine Event definieren, das was machen soll. Es wurde "pumpean" genannt, könnte aber auch "Flunz" heissen
at -> das Event soll zu bestimmten Zeiten ausgelöst werden
+* -> und zwar in xy Minuten von jetzt an (+) und dann immer wieder im selben (*) Intervall
00:30:00 -> 0 Stunden, 30 Minuten, 0 Sekunden
Damit ist geklärt unter welchen Bedingungen die "pumpean" genannten Aktion ausgeführt werden soll. Jetzt kommt WAS ausgeführt werden soll, mehre auszuführende Kommandos werden durch ein Semikolon getrennt,
set PoolPump on -> schalte den Aktor mit dem Namen PoolPump auf "on"
; -> Trenner zum nächsten Kommando
Und jetzt kommt der Trick, als nächstes Kommando legen wir ERNEUT ein Event an, das zeitlich ausgelöst wird:
define pumpeaus -> (irgendeine Event definieren, das was machen soll. Es wurde "pumpeuas" genannt, könnte aber auch "Blonz" heissen
at -> das Event soll zu bestimmten Zeiten ausgelöst werden
+ -> und zwar in xy Minuten von jetzt an (+) und dann nicht mehr.
00:15:00 -> 0 Stunden, 15 Minuten, null Sekunden
Damit ist geklärt unter welchen Bedingungen die "pumpeaus" genannten Aktion ausgeführt werden soll. Jetzt kommt WAS ausgeführt werden soll:
set PoolPump off -> schalte den Aktor mit dem Namen PoolPump auf "off"
Da pumpeaus nur einmal ausgeführt werden soll wird es danach gelöscht... aber 15 Minuten später vom immer wieder ausgeführten pumpeon wieder angelegt.
ZitatIch war lange genug in der Entwicklungshilfe tätig, um zu erkennen, dass Du keinen blassen Schimmer davon hast, wovon Du hier redest.
Och mönsch Betateilchen, das ist doch kein Diskussionsstil. Anstatt dich mit dem Sachthema zu befassen, greifst du mich persönlich an.
Ich hab Dich nicht angegriffen.
DU hast hier mit hinkenden Vergleichen angefangen, die nichts mit dem Sachthema zu tun haben.
Und darauf hab ich einfach keine Lust.
Ich bin hier raus. Ich lasse mir von Dir nicht meinen versuchten Lösungsweg kaputtschreiben, nur weil Du meine Systematik nicht erkennst und Dich zum wiederholten Mal hier im Forum daran aufgeilst, dass ich ein paar nicht unbedingt notwendige Klammern setze, um Dinge auf diesem Weg zu verdeutlichen.
Zitat von: zgadgeter schrieb am Di, 03 September 2013 11:50"Niete" ist kein schönes Wort :).
schöner als "Vollpfosten", oder?
Zitat von: betateilchen schrieb am Di, 03 September 2013 13:19Zitat von: zgadgeter schrieb am Di, 03 September 2013 11:50"Niete" ist kein schönes Wort :).
schöner als "Vollpfosten", oder?
Stimmt.
Ich hoffe, obwohl sich wegen meiner Frage die Diskussion so ausgebreitet hat, ich trotzdem noch auf euch Beide mich verlassen kann mir zu helfen!
Nochmals, danke alle!
PS: und, wenn ihr beide, oder auch einer von euch, am Donnerstag an dem Koelner treffen teilnimmt, spendiere ich jedem ein Bier, oder Cola, egal.
:)
ZitatNiete ... Vollpfosten ... keinen blassen Schimmer
Zitatkaputtschreiben ... aufgeilen.
Betateilchen: Wir sind nur unterschiedlicher Auffassung wie man Leuten helfen kann/sollte. Das ist weder ein Grund hier komplett hinzuschmeissen, noch mich persönlich anzugreifen.
Letzteres ist nicht schlimm, ich kann das verkraften.
Aber hinwerfen ... das fände ich schade.
Hallo Jungs,
auch ich bin einer, der es noch nicht so recht "blickt" - obwohl ich schon Programmiererfahrung habe (allerdings nicht in Perl und noch weniger in fhem).
Es ist toll, dass sich Leute Zeit nehmen, anderen zu helfen. Dass da unterschiedliche Ansätze vorhanden sind, Dinge zu erklären, ist auch klar. Aber ich finde, jeder sollte die Meinung des Anderen respektieren und persönliche Angriffe sein lassen ...
Ich persönlich präferiere den Ansatz, erst mal den Algorithmus aufzuschreiben, z.B:
- mach jetzt die Pumpe an
- warte 15 min. und schalte dann die Pumpe aus
- warte 15 min.
- wiederhole das solange, bis ich was anderes sage
oder
- schalte jetzt alle 30 min. die Pumpe an
- schalte nach 15 min. und danach alle 30 min. die Pumpe aus
Je nach dem, wie man den Algorithmus formuliert, wird auch die Realisierung unterschiedlich sein, wenngleich das Ergebnis (Pumpe für 15 min. an, dann Pumpe für 15 min aus) dasselbe ist. Aber eben mit besserer oder schlechterer Codierung ...
Für mich wäre viel interessanter, zu wissen:
- wann die {} kommen (sage ich damit in der Kommandozeile, dass jetzt eine Perl Funktion kommt?)
- wann kann ich die Befehle (wie z.B. set RPILCD01 backlight 0) ohne Klammer eintippen? ist das dann eine fhem Funktion?
Sprich, mir ist die Unterscheidung: was ist Perl und was ist fhem nicht ganz klar (steht mit Sicherheit irgendwo, ich habe es nur nicht parat). Wenn dies geklärt ist, und ein bisschen Programmiererfahrung vorhanden ist, kommt der Rest in Verbindung mit der commandref vermutlich relativ schnell alleine ...
So long.
Gruß PeMue
Da hatte ich im Forum hier schonmal eine kleines Tutorial eingetippt, aber leider finde ich den Beitrag nicht mehr.
Zitat von: betateilchen schrieb am Mo, 02 September 2013 21:52Zitat von: zgadgeter schrieb am Mo, 02 September 2013 21:39Stimmt. Sorry, mein Fehler. Ich wollte ja jeweils 15 minuten an, minuten aus.
dann muss es "vorne" +*00:30 und "hinten" +00:15 heißen
ZitatUnknown command fhem("define, try help.
Unknown command }, try help.
hast Du Dich irgendwo vertippt? Mach doch mal ein List von Deiner Definition und poste die hier
Also, auch mit den Risiko das ich hier wieder eine Diskussion starte.....
Habe heute Abend nachgesehen ob das alles funktioniert (
define pumpean at +*00:30:00 set PoolPump on ; define pumpeaus at +00:15:00 set PoolPump off).
Laut Log hat fhem das alles gut an und ausgemacht.
Nur, anscheinend da es ein IT schalter/Dose ist, reicht die Reichweite nicht aus bis hinten am Garten. Schade, da es eine Gartensteckdose ist.
So, habe jetzt eine FS20 dran gehängt. Kann diese per manuell über fhem an/aus machen, also Reichweite kein Problem. Also funktioniert.
Jetzt dachte ich das ich die kompliziertere Variante probiere, manuell eingetippt! Also kein copy/paste.
define pumpean at +*00:30:00 { fhem("set PoolPump on"); fhem("define pumpeaus at +00:15 set PoolPump off"); }bekomme immer noch den Fehler:
Unknown command fhem("define, try help.
Unknown command }, try help.
Hier mal ein Auszug aus meiner config. Hat da jemand einen Rat?
#changed definition of the cul_em device. was previously: define CUL_EM_2 CUL_EM 2
define CUL_EM_2 CUL_EM 2 75 900 0.21
attr CUL_EM_2 room utility
define FileLog_CUL_EM_2 FileLog ./log/CUL_EM_2-%Y.log CUL_EM_2:CNT.*
attr FileLog_CUL_EM_2 logtype power8:Power,text
attr FileLog_CUL_EM_2 room CUL_EM
define weblink_CUL_EM_2 SVG FileLog_CUL_EM_2:power8:CURRENT
attr weblink_CUL_EM_2 label "CUL_EM_2 Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_CUL_EM_2 room Plots
define poolpump FS20 1b1b 00
attr poolpump room garden
define FileLog_poolpump FileLog ./log/poolpump-%Y.log poolpump
attr FileLog_poolpump logtype text
attr FileLog_poolpump room FS20
define FS20_1b1b01 FS20 1b1b 01
attr FS20_1b1b01 room FS20
define FileLog_FS20_1b1b01 FileLog ./log/FS20_1b1b01-%Y.log FS20_1b1b01
attr FileLog_FS20_1b1b01 logtype text
attr FileLog_FS20_1b1b01 room FS20
define wl_0 SVG FileLog_CUL_EM_2:power8:CURRENT
Ich habe für den Garten einen IT-Repeater, funktioniert ganz gut. Siehe:
http://www.fhemwiki.de/wiki/ITV-100_Repeater (//www.fhemwiki.de/wiki/ITV-100_Repeater)
ZitatJetzt dachte ich das ich die kompliziertere Variante probiere, manuell eingetippt! Also kein copy/paste.
define pumpean at +*00:30:00 { fhem("set PoolPump on"); fhem("define pumpeaus at +00:15 set PoolPump off"); }
bekomme immer noch den Fehler:
Unknown command fhem("define, try help.
Unknown command }, try help.
Ich glaube ja ehrlich gesagt, dass Betateilchen ein Semikolon vergessen hat. Innerhalb geschweifter Klammern müssten Semikolons escaped werden. (ein einzelnes Semikolon fasst Perl als Teil eines Befehls auf, durch verdoppeln teillt man Perl mit, dass in Wirkichkeit das Semikolon als Befehlstrenner gemeint ist)
Ich glaube
define pumpean at +*00:30:00 { fhem("set PoolPump on");; fhem("define pumpeaus at +00:15 set PoolPump off") ;;}
könnte gehen.
Ich bin mir aber nicht ganz sicher, weil ich - da hat Betateilchen recht - seine Systemtik nicht komplett verstehe. Speziell die letzten beiden Semikolon am Ende kann man echt weglassen, denn das Semikolon trennt einzelne Befehle. Da nach dem Letzten aber kein weiterer Befehl mehr kommt den man abtrennen müsste, gehts auch ohne.
Selbst wenn man alle FHEM Befehle auch ohne eigentliche Notwendigkeit in Perl einkapselt wäre die naheligende Schreibweise eigentlich:
define pumpean at +*00:30:00 { fhem("set PoolPump on ;; define pumpeaus at +00:15 set PoolPump off")}
Diese Schreibweise wäre für mich noch nachvollziehbar, weil man irgendwelche IF-Abfragen leicht hinzufügen könnte, z.b.:
define pumpean at +*00:30:00 { if (isday()) { fhem("set PoolPump on ;; define pumpeaus at +00:15 set PoolPump off") } }
(Das ganze nur am tagsüber machen, nicht nachts)
Hier wäre tatsächlich der Vorteil für den Anfänger, dass bedingte und unbedingte Kommandos gleich aussehen, die Anzahl der Semikolon gleich ist und man leicht durch ergänzen oder wegschneiden der Bedingungsebene rumprobieren kann (Trotzdem ich immer noch glaube, dass es das Verständnis für die Notwendigkeit der diversen Klammerung nicht fördert).
Betateilchen geht aber noch einen Schritt weiter, klammert jeden Befehl einzeln ein und setzt noch mal die Übergabe an Fhem davor. Er findet das übersichtlicher ... dem kann ich nicht mehr folgen. Ich glaube, dass das verwirrt. Es ist jedenfalls recht weit vom funktional notwendigem Code entfernt.
Hmmm, das letztere hat fhem jetzt akzeptiert...mal beobachten...und verstehen!
danke!
Zitat von: Zrrronggg! schrieb am Di, 03 September 2013 22:15Ich habe für den Garten einen IT-Repeater, funktioniert ganz gut. Siehe:
http://www.fhemwiki.de/wiki/ITV-100_Repeater
Ich habe ja einige IT Geraete, werde aber so langsam auf FS usw. umsteigen. Danke!
Ich benutze beides. IT ist eben billig und wenn's reicht nehm ich das.
Hier habe ich noch mal einen älteren Post von mir gefunden
http://forum.fhem.de/index.php?t=msg&goto=74940&rid=33&srch=%3B+muss+escaped+werden#msg_74940 (//forum.fhem.de/index.php?t=msg&goto=74940&rid=33&srch=%3B+muss+escaped+werden#msg_74940)
in dem ich die Klammern und wann sie nötig sind und wann das Semikolon verdoppelt werden muss erläutert hatte.
(Gefolgt von einem bisschen Rumgejaule und Gejammere über die u.a. von Betateilchen propagierte schreibweise.
Den Teil könnt ihr dann ja überspringen.)
Alle Rolladen Steuerungen bei mir sind IT, und fhem kann sie (fast) im ganzen Haus steuern. Nur am Ende des Gartens (ca. 20 m) ist es scheinbar zu weit.
FS20 funktioniert da ohen Problem...ist leider nur keine Aussensteckdose, kann also nicht da bleiben...
Tolle und rege diskussion hier - ich finde gerade durch die Diskussion hat nun sicher jeder mitleser ein bisschen an knowhow gewonnen...
Ich habe mich gestern mit einer ähnlichen Thematik rumgeärgert um das vom Bewegungsmelder angeschaltete licht wieder abzuschalten.
Mir bleibt aber noch ne frage - kostet es Performance wenn man nicht umher kommt Perl einzubinden?
Ich meine nämlich festgestellt zu haben das der vom Bewegungsmelder gesendete on Befehl länger brauch das licht anzuschalten wenn er über Perl abgearbeitet wird...
Ich denke ja, das wird Performance kosten, aber ob das so viel ist dass man das merkt... hängt sicher auch vom Host ab.
Zitat von: zgadgeter schrieb am Di, 03 September 2013 22:45Hmmm, das letztere hat fhem jetzt akzeptiert...mal beobachten...und verstehen!
danke!
So, wie gesagt, scheint zu funktionieren...pumpe ging heute morgen um 6:14 an, danach um 6:29 aus, 6:44 wieder an...
define pumpean at +*00:30:00 { if (isday()) { fhem("set PoolPump on ;; define pumpeaus at +00:15 set PoolPump off") } }Jetzt kommt was kommen muss....Nachts passiert nichts, also pumpe die ganze Zeit aus, was ja auch nicht gut ist. Ich weiß allerdings auch nicht was da Sinn macht? Ich schätze mal, jede Stunde soll die Pumpe ca. 15 Minuten laufen. Heist:
Nachts: 15 Minuten an, danach 45 Minuten aus.
Tagsüber: 15 Minuten an, danach 15 Minuten aus, danach 15 Minuten an, usw.
Probiere mal heute ein bisschen Zeit zu finden mich mit der Sache zu beschäftigen, um mal zu verstehen.
Zitat von: zgadgeter schrieb am Mi, 04 September 2013 06:54Jetzt kommt was kommen muss....:
Nachts: 15 Minuten an, danach 45 Minuten aus
Ist doch exakt das gleiche, nur mit einem anderen Einschaltintervall und eben "nicht" tagsüber:
define pumpean at +*01:00 { if (!isday()) { fhem("set PoolPump on ;; define pumpeaus at +00:15 set PoolPump off") } }
(Ich würde allerdings die Pumpe nachts komplett ausgeschaltet lassen)
In meiner gesamten komplexen (weil umfangreichen) fhem Konfiguration gibt es übrigens nirgends zwei Semikolon hintereinander, und trotzdem funktioniert alles wie es soll.
@Betateilchen: Danke. (keine Polemik oder Ironie)
Thema Poolpumpe: Poolfachleute scheinen zu empfehlen, die Pumpe lieber mal paar Stunden am Stück laufen zu lassen, damit sich im Pool auch eine richtige Strömung aufbauen kann. Und von der Kraftwerks- und Netzauslastung her wäre es am besten, das in den Zeiten geringer Netzlast zu machen. Also z.B. von 0-5 Uhr Nachts. Sofern das Geräusch der Pumpe niemand stört.
Und bei Aussenpools dann tagsüber nur 20 Minuten vor wahrscheinlichen Badezeiten um den Staub von der Oberfläche abzuskimmen.