BW Ferien für AutoShutter Control, wegen isWE

Begonnen von D3ltorohd, 19 Mai 2024, 11:10:39

Vorheriges Thema - Nächstes Thema

D3ltorohd

Hallo Com,

ich bräuchte mal eure Hilfe. Ich habe mir ein Calender Device angelegt, wie HIER beschrieben. Das scheint auch soweit zu funktionieren.

Du darfst diesen Dateianhang nicht ansehen.

Wie bekomme ich nun ASC dazu, diese Infos zu nutzen, damit die Rollos in den Ferien später fahren. Es muss in FHEM ja jetzt irgendwas auf isWE oder holiday2we gesetzt werden, damit ASC das so erkennt. Hier bin ich raus, ich bekomme da nofiy im Dummy nicht angelegt und weiß nicht wie ich das nun so nutzen kann.

Hier bräuchte ich eure Hilfe, damit ich das hinbekomme. Man müsste mich hier ab diesem Punkt an die Hand nehmen und mit mir zusammen das einrichten.

Grüße,
Deltoro
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

betateilchen

Wäre es nicht einfacher, das über ein holiday-device zu lösen anstatt per Calendar?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

D3ltorohd

Sowas hier ?

Du darfst diesen Dateianhang nicht ansehen.

Das müsste ich ja immer von Hand alles eintragen ? Ich hab das mal gemacht, aber bekomme kein Event.

 
Zitat# $Id: bw.holiday 22661 2020-08-24 12:56:10Z betateilchen $
# Feiertage in Baden-Württemberg
# Siehe auch
# http://de.wikipedia.org/wiki/Feiertage_in_Deutschland

1 01-01 Neujahr
1 01-06 Heilige Drei Könige
1 05-01 Tag der Arbeit
1 10-03 Tag der Deutschen Einheit
1 11-01 Allerheiligen
1 12-25 1. Weihnachtstag
1 12-26 2. Weihnachtstag

2 -2 Karfreitag
2  1 Ostermontag
2 39 Christi Himmelfahrt
2 50 Pfingstmontag
2 60 Fronleichnam

4 05-21 05-31 Pfingstferien
4 07-25 09-07 Sommerferien
4 10-28 10-31 Herbstferien

#4 12-23 12-31 Weihnachtsferien
#4 01-01 04-04 Weihnachtsferien

Du darfst diesen Dateianhang nicht ansehen.
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

betateilchen

Der Pflegeaufwand reduziert sich auf einmal pro Jahr. Und zumindest Dein im ersten Beitrag geäußerter Wunsch nach "holiday2we" sollte damit ja erfüllbar sein.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

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

D3ltorohd

Aber ich scheine dann hier etwas falsch zu machen ? Müsste da nicht was stehen, anstatt "none" Genau so unten ? Today, Tomorrow und Yesterday. Müsste da nicht Pfingstferien stehen ?
Hab ich das falsch eingetragen in die Datei ?

Das ist ja mein Thread CoolTux, aber ich raf es immer noch nicht. Hätte schon gern das über Calendar gemacht. Dort ist auch ein Beispiel, aber ka wie ich das zusätzliche erstelle und wo.
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

TomLee

ZitatAber ich scheine dann hier etwas falsch zu machen ? Müsste da nicht was stehen, anstatt "none" Genau so unten ? Today, Tomorrow und Yesterday. Müsste da nicht Pfingstferien stehen ?

Hallo,
so hast Du das doch aber gar nicht in der holiday-Datei eingetragen? Pfingstferien beginnen bei Dir übermorgen.

Gruß

Thomas

D3ltorohd

Zitat von: TomLee am 19 Mai 2024, 13:05:28
ZitatAber ich scheine dann hier etwas falsch zu machen ? Müsste da nicht was stehen, anstatt "none" Genau so unten ? Today, Tomorrow und Yesterday. Müsste da nicht Pfingstferien stehen ?

Hallo,
so hast Du das doch aber gar nicht in der holiday-Datei eingetragen? Pfingstferien beginnen bei Dir übermorgen.

Gruß

Thomas

Bester Mann  ;D  Stimmt, die fangen ja erst Dienstag nach dem Feiertag an. Am WE und am Feiertag ist ja eh "isWE" gesetzt und ich habe Dienstag eingetragen. Dann stimmt es wahrscheinlich doch und klappt dann auch. Werde ich morgen schauen... Danke dir...

Aber automatisch über Calendar wäre schon schön gewesen.

Wo oder wie muss ich das eintragen ? So sollte er mir ja die Datei automatisch vom Calender befüllen.

sub myCalendar2Holiday {
  my $calname    = shift // return;
  my $regexp     = shift // return;
  my $targetname = shift // $calname;
  my $field      = shift // "summary";
  my $limit      = shift // 10;
  my $from       = shift // q{-10d};
  my $to         = shift // q{100d};

  my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) =  localtime(gettimeofday());
  my $getstring = $calname . ' events format:custom="4 $T1 $t2 $S ($D)" timeFormat:"%Y-%m-%d" limit:count=' . "${limit},from=${from},to=$to filter:field($field)=~\"$regexp\"";
  my @holidaysraw = split m{\n}xms, CommandGet( undef, $getstring );

  my @holidays;
  my @singledays;

  for my $holiday (@holidaysraw) {
    my @tokens = split (" ",$holiday);

    my $endsecond = $tokens[2]-1;
    my @end_arr = localtime($endsecond);


    $tokens[2] = strftime "%Y-%m-%d", localtime($endsecond);

    my $severalDays = $tokens[2] eq $tokens[1] ? 0 : 1;
    $holiday = join(' ', @tokens);
    if (!$severalDays) {
      $tokens[0] = 1;
      splice @tokens, 2, 1;
      $holiday = join(' ', @tokens);
      push (@singledays, $holiday);
    } else {
      push (@holidays, $holiday);
    }
  }
  push @holidays, @singledays;
  unshift (@holidays, "# get $getstring");
  my $today = strftime "%d.%m.%y, %H:%M", localtime(time);
  unshift (@holidays, "# Created by myCalendar2Holiday on $today");
  FileWrite("./FHEM/${targetname}.holiday",@holidays);
}
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

TomLee

ZitatWo oder wie muss ich das eintragen ? So sollte er mir ja die Datei automatisch vom Calender befüllen.

Da keiner antwortet, ich verstehe die Frage nicht !

Du weißt nicht wie man diese Funktion mit Parametern aufruft ?

Oder du weißt nicht wo man die Funktion hinterlegt ?

Oder beides ?

D3ltorohd

Zitat von: TomLee am 19 Mai 2024, 14:18:30
ZitatWo oder wie muss ich das eintragen ? So sollte er mir ja die Datei automatisch vom Calender befüllen.

Da keiner antwortet, ich verstehe die Frage nicht !

Du weißt nicht wie man diese Funktion mit Parametern aufruft ?

Oder du weißt nicht wo man die Funktion hinterlegt ?

Oder beides ?

Beides :-)
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

TomLee

Wenn Du bisher noch gar keine 99_myUtils.pm hast, musst zuerst eine erstellen, um die Funktion nutzen zu können.
Les dich hier mal ein: https://wiki.fhem.de/wiki/99_myUtils_anlegen

Wenn Du nicht weiter kommen solltest, frag einfach.

D3ltorohd

Zitat von: TomLee am 19 Mai 2024, 15:02:15Wenn Du bisher noch gar keine 99_myUtils.pm hast, musst zuerst eine erstellen, um die Funktion nutzen zu können.
Les dich hier mal ein: https://wiki.fhem.de/wiki/99_myUtils_anlegen

Wenn Du nicht weiter kommen solltest, frag einfach.

##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.


1;

Das steht hier drin, hatte die schon.

Dort kopiere ich einfach den Code von oben rein ?
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

TomLee

#12
ZitatDort kopiere ich einfach den Code von oben rein ?

Ja.

Nein. Hast du nicht das Wiki gelesen ?

Denkfehler von mir, hast Du die Datei auch als 99_myUtils.pm gespeichert ?
Was steht im Logfile nachdem du ein
"ls -l ./FHEM/*myUtils.pm" in der Befehlszeile ausführst ?



Danach kannst in der Befehlszeile oben in FHEM dann so testen:
{myCalendar2Holiday("BW_Ferien","Pfingstferien")}
In opt/fhem/FHEM sollte dann eine BW_Ferien.holiday zu finden sein.

betateilchen

#13
Achte darauf, wie die ...Utils... Datei wirklich heißt. Du solltest nicht das template bearbeiten und unter dem gleichen Namen wieder abspeichern.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

D3ltorohd

Zitat von: TomLee am 19 Mai 2024, 17:31:28
ZitatDort kopiere ich einfach den Code von oben rein ?

Ja.

Nein. Hast du nicht das Wiki gelesen ?

Denkfehler von mir, hast Du die Datei auch als 99_myUtils.pm gespeichert ?
Was steht im Logfile nachdem du ein
"ls -l ./FHEM/*myUtils.pm" in der Befehlszeile ausführst ?



Danach kannst in der Befehlszeile oben in FHEM dann so testen:
{myCalendar2Holiday("BW_Ferien","Pfingstferien")}
In opt/fhem/FHEM sollte dann eine BW_Ferien.holiday zu finden sein.

-rw-rw-r-- 1 fhem dialout 401 21. Aug 2019  ./FHEM/99_myUtils.pmIn der Log, nach dem Befehl !

Die Datei war schon vorhanden, die muss ich früher mal angelegt haben.
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1