"Pate" gesucht, für Anfängerin mit bestehendem System

Begonnen von Blubb78, 31 Dezember 2023, 12:59:20

Vorheriges Thema - Nächstes Thema

CoolTux

Das kann man mit ASC steuern. Inklusive Zeitvorgabe unter der die Bedingung gelten soll.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Prof. Dr. Peter Henning

Man kann das aber auch sehr viel weniger kompliziert machen, ohne Perl-Programmierung.

Erstens gibt es das Modul Astro, damit werden Sonnenauf- und Untergänge berechnet. Übrigens auch Sonnenstände, wichtig für eine Beschattungssteuerung und ein Balkonkraftwerk.

Zweitens gibt es das Modul YAAHM, bei dem über eine komfortable Oberfläche zeitabhängige Aktionen zusammengeklickt werden können.

Beispielsweise zu den frei definierbaren Zeitpunkten "Nach Sonnenuntergang", oder "Wecken" etc.
Aber auch so etwas wie "Nach Sonnenuntergang, aber frühestens um 18:00".

Und, wie sollte es auch anders sein: Ich empfehle immer das Buch "Hausautomatisierung mit FHEM". Ist inzwischen auch als PDF weit verbreitet und kostenfrei zu bekommen.

LG

pah

FHEMAN

#17
Zitat von: Blubb78 am 03 Januar 2024, 12:24:16Mein (natürlich nicht erfolgreicher) Versuch war zum Beispiel mal so:   
*{sunset("06:00","23:59")} IF ([PV:Gesamtleistung]<20) (set Fenster_rechts pct 90) ELSE (set Fenster_rechts pct 80)

(nur ein Test, Zahlen unrealistisch)


Nur mal was zum Überlegen:
Du benötigst mindestens den Trigger für den Sonnenaufgang und die Solaranlage. Dein at triggert nur einmalig bei Sonnenaufgang. Was ist, wenn zu dem Zeitpunkt die Solaranlage noch nichts produziert (bspw. dicke Regenwolken) oder an diesem Tag gar nichts produziert (bspw. bei Schnee). Du müsstest daher auch einen Time-Range angeben. Aus meiner Sicht am idealsten ohne Einarbeitung in spezielle Module wäre die Nutzung eines DOIF - unter Auswertung von sunset mit min, max und offset sowie der PV Gesamterzeugung.

Vielleicht so in der Art (unter Nutzung des Twilight Moduls):
defmod doif.Fenster_rechts DOIF ([[Twilight:ss_civil]-[Twilight:sr_naut]] or ([PV:Gesamtleistung] < 20) (set Fenster_rechts pct 90)
DOELSE (set Fenster_rechts pct 80)
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Blubb78

Zitat von: FHEMAN am 05 Januar 2024, 16:45:10
Zitat von: Blubb78 am 03 Januar 2024, 12:24:16Mein (natürlich nicht erfolgreicher) Versuch war zum Beispiel mal so:   
*{sunset("06:00","23:59")} IF ([PV:Gesamtleistung]<20) (set Fenster_rechts pct 90) ELSE (set Fenster_rechts pct 80)

(nur ein Test, Zahlen unrealistisch)


Nur mal was zum Überlegen:
Du benötigst mindestens den Trigger für den Sonnenaufgang und die Solaranlage. Dein at triggert nur einmalig bei Sonnenaufgang. Was ist, wenn zu dem Zeitpunkt die Solaranlage noch nichts produziert (bspw. dicke Regenwolken) oder an diesem Tag gar nichts produziert (bspw. bei Schnee). Du müsstest daher auch einen Time-Range angeben. Aus meiner Sicht am idealsten ohne Einarbeitung in spezielle Module wäre die Nutzung eines DOIF - unter Auswertung von sunset mit min, max und offset sowie der PV Gesamterzeugung.

Vielleicht so in der Art (unter Nutzung des Twilight Moduls):
defmod doif.Fenster_rechts DOIF ([[Twilight:ss_civil]-[Twilight:sr_naut]] or ([PV:Gesamtleistung] < 20) (set Fenster_rechts pct 90)
DOELSE (set Fenster_rechts pct 80)

Jetzt wollt ich mir mal in Ruhe dieses von den anderen genannten Modul anschauen, aber das hier klingt einfacher, vielen Dank!
Wie  nutz ich denn das Twilight-Modul?

Und warum, auch bei anderen versuchen, erhalten ich diese Meldung: "Wrong timespec defmod: either HH:MM:SS or {perlcode}"

Vielen Dank schon mal für Deine Hilfe!

betateilchen

Zitat von: Blubb78 am 05 Januar 2024, 17:04:33Wie  nutz ich denn das Twilight-Modul?

Gib mal help twilight oben in die FHEM Befehlszeile ein.

Zitat von: Blubb78 am 05 Januar 2024, 17:04:33Und warum, auch bei anderen versuchen, erhalten ich diese Meldung: "Wrong timespec defmod: either HH:MM:SS or {perlcode}"

Du versuchst, ein at-device mit einer ungültigen Angabe für den Ausführungszeitpunkt anzulegen.
Aber ohne zu wissen, was Du da genau "versuchst", ist es schwer, dir den konkreten Fehler zu benennen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Blubb78

Zitat von: betateilchen am 05 Januar 2024, 17:12:24
Zitat von: Blubb78 am 05 Januar 2024, 17:04:33Wie  nutz ich denn das Twilight-Modul?

Gib mal help twilight oben in die FHEM Befehlszeile ein.

Zitat von: Blubb78 am 05 Januar 2024, 17:04:33Und warum, auch bei anderen versuchen, erhalten ich diese Meldung: "Wrong timespec defmod: either HH:MM:SS or {perlcode}"

Du versuchst, ein at-device mit einer ungültigen Angabe für den Ausführungszeitpunkt anzulegen.
Aber ohne zu wissen, was Du da genau "versuchst", ist es schwer, dir den konkreten Fehler zu benennen.
Die Meldung erscheint zum Beispiel, wenn ich Deinen vorgeschlagenen Code versuche abzuspeichern.

betateilchen

#21
Zitat von: Blubb78 am 05 Januar 2024, 17:45:19Die Meldung erscheint zum Beispiel, wenn ich Deinen vorgeschlagenen Code versuche abzuspeichern.

In diesem Thread habe ich noch gar keinen Code gepostet...

Vermutlich versuchst Du, das Beispiel mit AstroActionTime() einzubauen,
ohne die Verwendung des Astro-Moduls in Deinem FHEM aktiviert zu haben.
ohne dass es die Funktion bei Dir überhaupt gibt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Blubb78

#22
Zitat von: betateilchen am 05 Januar 2024, 17:52:37
Zitat von: Blubb78 am 05 Januar 2024, 17:45:19Die Meldung erscheint zum Beispiel, wenn ich Deinen vorgeschlagenen Code versuche abzuspeichern.

In diesem Thread habe ich noch gar keinen Code gepostet...

Vermutlich versuchst Du, das Beispiel mit AstroActionTime() einzubauen,
ohne die Verwendung des Astro-Moduls in Deinem FHEM aktiviert zu haben.
ohne dass es die Funktion bei Dir überhaupt gibt.

AstroActionTime()? hmmm, die Meldung kommt bei diesem Versuch zum Beispiel:

defmod doif.Tuer_WoZi DOIF ([[Twilight:ss_civil]-[Twilight:sr_naut]] or ([PV:Gesamtleistung] < 20) (set Tuer_WoZi pct 90)
DOELSE (set Tuer_WoZi pct 80)

Das Modul Twilight gibt es nun...


Mal noch ne ganz andere Frage. Geb ich das ganze vllt. an der völlig falschen Stelle ein? Ich weiß gar nicht, wie genau ich meine Frage formulieren soll, sorry. Ich hab ja schon "Befehle", zum Beispiel, dass der Rollladen x Sekunden nach dem Sonnenaufgang hoch gehen soll, im Zeitraum zwischen z.B. 6 - 8 Uhr. Das funktioniert ja schon. Bin ich da schon in einem Modul? Oder wo bin ich da "drin"?

betateilchen

Zitat von: Blubb78 am 05 Januar 2024, 18:18:16Mal noch ne ganz andere Frage. Geb ich das ganze vllt. an der völlig falschen Stelle ein?
...
Bin ich da schon in einem Modul? Oder wo bin ich da "drin"?

Warum muss ich jetzt an Boris Becker und AOL denken?

Das ist eine gute Frage. Ohne Dir zu nahe treten zu wollen:
Dir fehlen die einfachsten Grundlagen zu FHEM, das macht die Sache hier sehr kompliziert.

So einfache Fragen wie

  • "was ist ein device?"
  • "wie bzw. wo lege ich ein device an?"
  • "was sind Funktionen?"
  • ...

In ein Modul wirst Du vermutlich (und hoffentlich) nie kommen, keine Sorge.

Aber wo tippst Du denn in Deinem FHEM tatsächlich irgendwas wie beispielsweise

define at_Sunset at *{AstroActionTime("SunSet","18:00:00","22:00:00")} {}
ein?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Blubb78

Zitat von: betateilchen am 05 Januar 2024, 18:37:03
Zitat von: Blubb78 am 05 Januar 2024, 18:18:16Mal noch ne ganz andere Frage. Geb ich das ganze vllt. an der völlig falschen Stelle ein?
...
Bin ich da schon in einem Modul? Oder wo bin ich da "drin"?

Warum muss ich jetzt an Boris Becker und AOL denken?

Das ist eine gute Frage. Ohne Dir zu nahe treten zu wollen:
Dir fehlen die einfachsten Grundlagen zu FHEM, das macht die Sache hier sehr kompliziert.

So einfache Fragen wie

  • "was ist ein device?"
  • "wie bzw. wo lege ich ein device an?"
  • "was sind Funktionen?"
  • ...
Du hast natürlich Recht und deshalb bin ich auch sehr sehr dankbar hier Antworten von geduldigen Menschen wie Dir (und den anderen die hier geantwortet haben) zu bekommen. Wenn ich mich jetzt über die von Dir genannten Begriffe schlau mach, gibt es trotzdem weiterhin so so viel, von dem ich nur Bahnhof verstehe. Es ist für mich alles so unendlich umfangreich, dass ich vor lauter Bäumen den Wald nicht sehe und überhaupt nicht weiß, wo ich anfangen soll. 

ZitatIn ein Modul wirst Du vermutlich (und hoffentlich) nie kommen, keine Sorge.

Aber wo tippst Du denn in Deinem FHEM tatsächlich irgendwas wie beispielsweise

define at_Sunset at *{AstroActionTime("SunSet","18:00:00","22:00:00")} {}
ein?
Hmmm, in meine schon bestehende Rollladenautomatik, die ich optimieren möchte.

Change wizard
Change the timespec:
Relative  Periodic  Use perl function for timespec
sunrise(2300,"19:34","20:30")
 
Change the executed command:
 Rollladen_TEST *{sunrise(2300,"19:34","20:30")} set
01_Zentraltaster_Rolladen_zu

trgEventS


 Rollladen_TEST
active
und dann kommt direkt ein neuer Block
Internals
COMMAND [...]
DEF  hier geb ichs ein
[...]


Vermutlich sitzt Du nun kopfschüttelnd und mit Hände überm Kopf zusammen schlagend vorm PC... aber irgendwie hats halt bisher funktioniert.

betateilchen

Das ist die falsche Stelle. Du versuchst da, ein bestehendes device (!) zu verändern und das erklärt auch die Stelle, an der die Fehlermeldung wegen der timespec auftritt.

Sowas gibt man ganz oben in der Befehlszeile von FHEM ein.

Hast Du Dir mal die Anfängerdokumentation zu FHEM durchgelesen? Damit Du zumindest ansatzweise verstehen kannst, was die Hilfestellungen, die man Dir hier trotz aller Hoffnungslosigkeit gibt, überhaupt bedeuten?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Blubb78

Zitat von: betateilchen am 05 Januar 2024, 20:17:48Das ist die falsche Stelle. Du versuchst da, ein bestehendes device (!) zu verändern und das erklärt auch die Stelle, an der die Fehlermeldung wegen der timespec auftritt.

Sowas gibt man ganz oben in der Befehlszeile von FHEM ein.

Hast Du Dir mal die Anfängerdokumentation zu FHEM durchgelesen? Damit Du zumindest ansatzweise verstehen kannst, was die Hilfestellungen, die man Dir hier trotz aller Hoffnungslosigkeit gibt, überhaupt bedeuten?

Teile gelesen, Teile überflogen, bei Fhem Wiki versucht mit konkreten Suchberiffen weiter zu kommen.......


Also ist das der völlig falsche Ansatz an der Stelle, wo ich versuche, anzupassen? Ich zerstöre natürlich nichts funktionierendes, sondern habs mir vorher kopiert, um dann ausprobieren zu können.
Bisher hatte ich an der Stelle meinen Befehl "Rollladen runter, bei Sonnenuntergang aber frühestens/spätestens zu Zeitpunkt x" und nun möchte ich Sonnenuntergang durch "sehr wenig Strom von der PV-Anlage" ersetzen. Das muss in die Befehlszeile?
Oben in der Befehlszeile geb ich doch ein, was jetzt passieren soll? Da hab ich vorhin dieses Twilight erstellt mit meinen Daten?
Bin ich so komplett auf dem falschen Weg?


Prof. Dr. Peter Henning

ZitatBin ich so komplett auf dem falschen Weg?

Ja, leider. Ich kann nur meinen Tipp wiederholen, ganz unten anzufangen und mit ein paar einfachen Beispielen zu versuchen, die hier genannten Strukturen zu verstehen. Und eben _nicht_ gleich die astronomische Steuerung der eigenen Rollläden zu modifizieren. Hinter diesem Tipp stehen, wenn ich das sagen darf, etliche Jahrzehnte der Erfahrung damit, nicht-technischen Personen technische oder naturwissenschaftliche Dinge beizubringen.

Aus genau dem Grund (und für eine Person, die auch etwas Schwierigkeiten hatte...) habe ich auch das YAAHM-Modul geschrieben. Das steuert nämlich nichts selbst, sondern erzeugt entsprechende DOIFs. Vlt. einfach mal ansehen: https://wiki.fhem.de/wiki/Modul_YAAHM

Und dann ganz unabhängig von den Rollläden erstmal damit irgendetwas machen, und sich ansehen, wie die entsprechenden Timer/DOIFs aussehen.

LG

pah


P.S.: Und erst mal Finger weg von wohlgemeinten Code-Beispielen, die man nicht komplett versteht.