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

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

Vorheriges Thema - Nächstes Thema

Blubb78

Hallo Ihr Lieben,

ich hab den angepinnten Beitrag gelesen, aber ich bin einfach so rundum unwissend, dass ich mich über jemanden, der mir immer wieder bei Fragen beratend zur Seite stehen kann, freuen würde.
Zu mir, ich bin Anfang 40 und Mama von zwei kleinen Kindern. Ich steck also eher in ganz anderen Themen als Hausautomation und komm aktuell auch einfach nicht dazu, mich umfassend in das Thema einzulesen. Beruflich komm ich aus dem Büro und hab mit Programmierung eher weniger am Hut.
Wir haben hier ganz viele Geräte von Homeatic (ohne IP), es läuft auch alles irgendwie, aber ab und an würde ich doch gern was optimieren. Bisher war das learning by doing, bestehende Prozesse ändern, anpassen,... selbst mit KI hab ichs schon versucht.

Aktuell hänge ich an der Rollladensteuerung. Unsere Rollläden schließen und öffnen sich nach Sonnenuntergang und -aufgang. Wir haben ein Balkonkraftwerk und ich würde die Rollläden gern abhängig von der Helligkeit öffnen und schließen lassen, also sobald Strom da (und ab Uhrzeit x), Rollladen hoch.

Hat jemand Nerven und Geduld für mich und unser System? 🙈

Gisbert

Hallo Blubb78,

kannst du beispielhaft ein Device hier posten, das einen Rollladen steuert? Desweiteren wäre die Frage, wo du die Helligkeit herbekommst, die als Trigger für die Steuerung des Rollladensteuerung dienen soll. Falls du da ein Device hast, dann bitte auch von diesem ein list und hier posten. Falls du kein Devices hast, kann man diese Infos auch aus dem Internet beziehen.

Noch ein allgemeiner Rat, bitte lies das Einsteiger-PDF Fhem durch, falls du es noch nicht getan hast: https://fhem.de/Heimautomatisierung-mit-fhem.pdf

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

JoWiemann

Zitat von: Blubb78 am 31 Dezember 2023, 12:59:20Hat jemand Nerven und Geduld für mich und unser System? 🙈

Hallo,

bevor wir alle Lösungen posten. Was ist den Dein System?

Ok, Homematic hast geschrieben. Und was noch?

- CCU2
- CCU3
- Raspberry PI mit Fhem oder für RaspberryMatic oder ...

oder etwas ganz anderes?

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Blubb78

Zitat von: JoWiemann am 31 Dezember 2023, 17:28:08
Zitat von: Blubb78 am 31 Dezember 2023, 12:59:20Hat jemand Nerven und Geduld für mich und unser System? 🙈

Hallo,

bevor wir alle Lösungen posten. Was ist den Dein System?

Ok, Homematic hast geschrieben. Und was noch?

- CCU2
- CCU3
- Raspberry PI mit Fhem oder für RaspberryMatic oder ...

oder etwas ganz anderes?

Grüße Jörg

Wo schau ich das nach? Raspberry PI vermute ich... aber sonst?



Mein (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)

Wernieman

Das hört sich nach größeren Problemen an.

1. Wer hat das System überhaupt aufgesetzt?
2. In welcher Gegend wohnst Du? (Falls "vor Ort Hilfe" notwendig wird)
3. Was ist (abgesehen von HM) überhaupt eingerichtet?
4. Hättest Du ein Problem, ein "List" des Komplettsystems per PM zu schicken? Sonst könnten eventuelle "Geheimnisse" enthalten sein ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Blubb78

Zitat von: Gisbert am 31 Dezember 2023, 13:19:46Hallo Blubb78,

kannst du beispielhaft ein Device hier posten, das einen Rollladen steuert? Desweiteren wäre die Frage, wo du die Helligkeit herbekommst, die als Trigger für die Steuerung des Rollladensteuerung dienen soll. Falls du da ein Device hast, dann bitte auch von diesem ein list und hier posten. Falls du kein Devices hast, kann man diese Infos auch aus dem Internet beziehen.

Noch ein allgemeiner Rat, bitte lies das Einsteiger-PDF Fhem durch, falls du es noch nicht getan hast: https://fhem.de/Heimautomatisierung-mit-fhem.pdf

Viele Grüße Gisbert

Mein Gedanke war, die Helligkeit über den Stromertrag der PV Anlage zu messen. Strom da = hell


So läuft die Steuerung aktuell:

COMMAND    set Rolladen_alle_ohne_Schlafzimmer on
DEF    *{sunrise(2300,"07:30","10:30")} set Rolladen_alle_ohne_Schlafzimmer on
   
FUUID    5d972012-f33f-9755-cb06-3b4ed19dfbac47e4
NAME    Rolladen_hoch
NR    89
NTM    08:16:01
PERIODIC    yes
RELATIVE    no
REP    -1
STATE    Next: 08:16:01
TIMESPEC    {sunrise(2300,"07:30","10:30")}
TRIGGERTIME    1704352561
TRIGGERTIME_FMT    04.01.2024 08:16
TYPE    at


Wernieman

Kleiner Tipp:
Wenn man List, Logeinträge oder sonstiges "technisches" Postet am besten in "Code"-Tags. Wenn Du einen Beitrag schreibst, findest Du es im "Editmenü" neben "Tabelle einfügen" und "Zitat einfügen". Macht es den "Supporter" leichter, den Beitrag zu lesen und zu verstehen.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Blubb78

Zitat von: Wernieman am 03 Januar 2024, 12:31:43Das hört sich nach größeren Problemen an.

1. Wer hat das System überhaupt aufgesetzt?
2. In welcher Gegend wohnst Du? (Falls "vor Ort Hilfe" notwendig wird)
3. Was ist (abgesehen von HM) überhaupt eingerichtet?
4. Hättest Du ein Problem, ein "List" des Komplettsystems per PM zu schicken? Sonst könnten eventuelle "Geheimnisse" enthalten sein ...

Nein nein, es gibt keine größeren Probleme, es läuft alles soweit, ich möchte nur optimieren und blicks nicht.
Aufgesetzt hat es jemand, der uns bei der Hausrenovierung geholfen hat, allerdings aktuell keine Kapazitäten hat, um mir bei meinen weiteren Ideen bei der Umsetzung zu helfen.
Zu 3., hmmm, ich versteh die Frage nicht. Was ist damit denn gemeint? Wie geschrieben, ich bin Nutzer des Systems und habe bisher eben Kleinigkeiten geändert und angepasst, durch Internetrecherche, durch ausprobieren... und unsere Rollläden sind schon ewig ein Thema, das ich nicht gelöst bekomme. Scheint morgens die Sonne, sind sie noch viel zu lange unten. Ist es abends regnerisch und trüb und schon fast dunkel, gehen sie zu spät runter...

Blubb78

Zitat von: Wernieman am 03 Januar 2024, 12:38:34Kleiner Tipp:
Wenn man List, Logeinträge oder sonstiges "technisches" Postet am besten in "Code"-Tags. Wenn Du einen Beitrag schreibst, findest Du es im "Editmenü" neben "Tabelle einfügen" und "Zitat einfügen". Macht es den "Supporter" leichter, den Beitrag zu lesen und zu verstehen.
Danke! Ich hab tatsächlich versucht nen Screenshot zu posten, aber nirgends die Option gefunden, ein Bild einzufügen. Glücklich war ich mit meiner Darstellung auch nicht :-)

Wernieman

Und da bitte auch: Im Zweifel KEIN ScreenShot ... die Daten kann man schlecht per copy&paste bei einem Test-System ausprobieren

Btw:
Zusammengefasst:
Du hattest bisher einen "Dienstleister", der Dir das FHEM aufgesetzt hatte. Das hattest Du dann selber "verbessert". Aktuell suchst Du aber einen "Neuen", da der alte keine Zeit mehr hat?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

CoolTux

Für das Thema Rolladen könnte man sich mal das ASC (AutoShuttersControl) Modul anschauen. Ansonsten wäre eine Beschreibung was genau Du erreichen willst und ein list der betreffenden Devices hilfreich.

list DEVICENAME
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

Blubb78

Zitat von: Wernieman am 03 Januar 2024, 12:44:59Und da bitte auch: Im Zweifel KEIN ScreenShot ... die Daten kann man schlecht per copy&paste bei einem Test-System ausprobieren

Btw:
Zusammengefasst:
Du hattest bisher einen "Dienstleister", der Dir das FHEM aufgesetzt hatte. Das hattest Du dann selber "verbessert". Aktuell suchst Du aber einen "Neuen", da der alte keine Zeit mehr hat?

Ah, macht Sinn mit dem Screenshot, danke für den Hinweis.

Jein, kein Dienstleister, ein enger Familienangehöriger, der mir aktuell auf meine Fragen mit "lies mal im Fhem-Forum" oder "Frag KI" antwortet. Bisher bin ich da auch gut weiter gekommen, nur mit dem Rollladen, das fuchst mich, dass ich das nicht hinbekomme.... aber scheinbar ist es wohl nicht so einfach, wie ich erhofft hatte und braucht viel viel mehr Hintergrundwissen für die Helfenden. :-(

Blubb78

Zitat von: Sailor am 31 Dezember 2023, 15:42:03Hallo Blubb78

Herzlich Willkommen bei fhem.

Anbei als Beispiel meine Loesung:

Annahme
Du hast deinen Räumen alle 2 Buchstaben als Raum-Code vergeben:

AS - art studio
PH - pattio house
PA - pattio art studio
PS - pattio south
PE - pattio entrance
GP - garden pond
B0 - guest bathroom
B1 - family bathroom
BR - bedroom
CE - childrens room east
CW - childrens room west
CR - chimney room
CH - boiler room
CP - carport
DR - dining room
GE - garden-equipment room
GH - greenhouse
GR - guest room
HW - hallway
KT - kitchen
LR - laundry room
LF - loft
OS - outside
R1 - roof space southeast in bedroom
R2 - roof space southwest in bedroom
R3 - roof space northeast in childrens room east (Ben)
R4 - roof space northwest in childrens room west (Leo)
SR - rear storage room
TR - TV room
WS - workshop

und stellst diese den immer gleich lautenden Namen für gleiche Funktionen voran.

KT_Blind
KT_Light_Sw
KT_Thermostat
KT_Thermostat_climate
KT_Thermostat_window

GR_Blind
GR_Light_Sw
usw.

Dann erstellst du die Datei /opt/fhem/FHEM/99_myUtils.pm (Die wirst du in Zukunft ohnehin noch sehr oft brauchen) und kopierst folgenden Inhalt rein:
###START###### PERL Initialisation ############################################################################START####
package main;
use strict;
use warnings;
use utf8;
use POSIX;

use HttpUtils;
use JSON;
use Array::Utils qw(:all);
use Email::Sender::Simple qw(sendmail try_to_sendmail);
use Email::Sender::Transport::SMTPS;
use Email::Simple ();
use Email::Simple::Creator ();
use Email::MIME;
use  MIME::QuotedPrint;
use  HTML::Entities;
use  JSON::Parse;
use   LWP::UserAgent;
use   LWP::Simple;
use   Net::OpenSSH;
use    IO::All;

sub myUtils_Initialize($$) {
my ($hash) = @_;
}
####END####### PERL Initialisation #############################################################################END#####

###START########## Define SUB for calculation of sunset actions #################################################START###
sub AstroActionTime($$$) {
my ($AstroAction, $TimeNotBefore, $TimeLatest) = @_;
my $TimeSecAction;
my $TimeAction;
my $TimeSecAstroAction;

### For debugging purpose only
Log 5, "myUtils - AstroActionTime____________________________________________________________________";
my $Today = POSIX::strftime("%Y-%m-%d",localtime(time));
my $TimeAstroAction = Astro_Get($defs{"global"},"global","text",$AstroAction,$Today);
my $TimeSecNotBefore = hms2secs($TimeNotBefore);
my $TimeSeclatest = hms2secs($TimeLatest);

Log 5, "myUtils - AstroActionTime - Today                                    : " . $Today;
Log 5, "myUtils - AstroActionTime - AstroAction                              : " . $AstroAction;
Log 5, "myUtils - AstroActionTime - TimeNotBefore                            : " . $TimeNotBefore;
Log 5, "myUtils - AstroActionTime - Astro_Get                                : " . Astro_Get($defs{"global"},"global","text",$AstroAction,$Today);
Log 5, "myUtils - AstroActionTime - TimeAstroAction                          : " . $TimeAstroAction;
Log 5, "myUtils - AstroActionTime - TimeLatest                               : " . $TimeLatest;
Log 5, "myUtils - AstroActionTime - Calculations...";

if ($TimeAstroAction =~ /^(2[0-3]|[01]?[0-9]):([0-5]?[0-9])$/){
$TimeSecAstroAction = hms2secs($TimeAstroAction);
}
else {
$TimeSecAstroAction = 0;
}

if ($TimeSecAstroAction < $TimeSecNotBefore){
$TimeSecAction = $TimeSecNotBefore;
}
elsif ($TimeSecAstroAction > $TimeSeclatest){
$TimeSecAction = $TimeSeclatest;
}
else {
$TimeSecAction = $TimeSecAstroAction;
}

$TimeAction = POSIX::strftime("%H:%M:%S",gmtime($TimeSecAction));

Log 5, "myUtils - AstroActionTime - TimeSecNotBefore                         : " . $TimeSecNotBefore;
Log 5, "myUtils - AstroActionTime - TimeSecAstroAction                       : " . $TimeSecAstroAction;
Log 5, "myUtils - AstroActionTime - TimeSeclatest                            : " . $TimeSeclatest;
Log 5, "myUtils - AstroActionTime - TimeSecAction                            : " . $TimeSecAction;
Log 5, "myUtils - AstroActionTime - TimeAction                               : " . $TimeAction;

return($TimeAction);
}
####END########### Define SUB for calculation of sunset actions ##################################################END####
Dieser Code errechnet ob der nautische Sonnenaufgang oder Untergang für deinen Geschmack nicht viel zu früh bzw. zu spät kommt.

Dann erstellst du dir 2 at (Timer)

define at_Sunrise at *{AstroActionTime("SunRise","06:00:00","08:00:00")} {}Um Mitternacht berechnet fhem den Timer neu nach folgenden Kriterien:
Zum Sonnenaufgang loese den Code (unten) aus aber
wenn der Sonnenaufgang früher als 06:00 Uhr ist, warte bis 06:00 Uhr.
wenn der Sonnenaufgang später als 08:00 Uhr ist, löse trotzdem um 08:00 Uhr aus.

In diesem at_Sunrise speicherst du unter DEF den folgenden Code:
(Die Namen für deine Rollladen musst du natürlich entsprechend ändern)

*{AstroActionTime("SunRise","06:00:00","08:00:00")} {
Log3 "at_Sunrise", 3, "at_Sunrise : Sunrise is triggered - opening blinds.";

#Unconditional opening
fhem("set LR_Blind.* pct 100");
fhem("set KT_Blind.* pct 100");
fhem("set CW_Blind.* pct 100");
fhem("set CE_Blind.* pct 100");
fhem("set AS_Blind.* pct 100");
fhem("set CR_Blind.* pct 100");
fhem("set TR_Blind.* pct 100");
fhem("set GR_Blind.* pct 100");
}

Für den Sonnenuntergang gilt das gleiche:
define at_Sunset at *{AstroActionTime("SunSet","18:00:00","22:00:00")} {}
mit dem folgenden Code unter DEF

*{AstroActionTime("SunSet","18:00:00","22:00:00")} {
Log3 "at_Sunset", 3, "at_Sunset : Sunset is triggered closing blinds.";

#Unconditional closure
fhem("set LR_Blind.* pct 0");
fhem("set KT_Blind.* pct 0");
fhem("set CW_Blind.* pct 0");
fhem("set CE_Blind.* pct 0");
fhem("set GR_Blind.* pct 0");
}

Dann musst du noch bei beiden das Attribut "computeAfterInit" setzen, damit fhem die Zeiten nicht zu früh nach dem Neustart von fhem ausführt:
attr at_Sunrise computeAfterInit 1
attr at_Sunset computeAfterInit 1

Oben links auf "Save" klicken und fhem mit "shutdown restart" neu starten.

Das sollte eigentlich klappen...

Gruß
    Sailor

PS: Wenn du attr global verbose 5 setzt, kannst du die einzelnen Berechnungsstufen genau einsehen.
Aber nicht vergessen hinterher wieder auf 3 zu stellen, sonst ist dein Log-File recht schnell zugefüllt.

Danke für Deine ausführliche Antwort. Ich versteh zwar vieles nicht, aber trotzdem mal eine Frage dazu. Diese Lösung richtet sich auch nach Daten aus dem Internet, wann die Sonne auf- oder untergeht?

Blubb78

Zitat von: CoolTux am 03 Januar 2024, 12:45:09Für das Thema Rolladen könnte man sich mal das ASC (AutoShuttersControl) Modul anschauen. Ansonsten wäre eine Beschreibung was genau Du erreichen willst und ein list der betreffenden Devices hilfreich.

list DEVICENAME



Aktuell laufen die Rollläden vereinfacht gesagt nach den aus dem Internet bezogenen offiziellen Sonnenauf- und Sonnenuntergängen.
Aufgrund von gutem oder schlechtem Wetter sitz ich aber regelmäßig wenns schon hell ist noch da mit Rollläden unten und umgekehrt.
Wir haben ein Balkonkraftwerk, ich würde gern steuern, dass die Rollläden hoch/runter gehen, sobald eine bestimmte Menge Strom (nicht mehr) fließt (in einem bestimmten Zeitraum)

TomLee

Hallo,

meine Empfehlung wäre das bereits erwähnte ASC-Modul zu verwenden.

Du kannst ja klein anfangen und erstmal nur einen Rollladen damit fahren/testen, später (bei Gefallen) Stück für Stück dann die anderen ergänzen.
Rolladen_alle_ohne_Schlafzimmer versteh ich so dass das eine structure ist, da pickst Dir einfach einen Rollladen raus den dort rausnimmst, um ihn dann zur Verwendung mit dem ASC-Modul zu konfigurieren.