Anbindung and ebusd mit modul 98_GAEBUS.pm

Begonnen von jamesgo, 14 September 2015, 10:18:17

Vorheriges Thema - Nächstes Thema

nightstorm99

Hallo Reinhart,

ZitatHier eine Beispiel Variante 2 mit getrennten von bis Feldern und fixen Zeitfenstern (30min):

Die gefällt mir sehr gut und bin gerade dabei diese umzusetzen!
Vielen Dank dafür


Gruß
Denny

Reinhart

@jamesgo

Ich beobachte jetzt schon seit längerer Zeit einen dummen Fehler auf dem Raspi wo der eBus läuft.

Wenn ich mich per SSH mit Putty auf dem Raspi einlogge und ebusctl Kommandos absetze (irgendwas auslesen oder reload), dann kann ich den Befehl eingeben, bekomme aber keine Antwort. Der Watchdog in FHEM spricht nicht an und es wird auch per ECMD und GAEBUS noch kommuniziert. Da ich diesen Fehler von früher nicht kannte (ebus läuft seit einem Jahr stabil), vermutete ich die Ursache am Laufenden GAEBUS. Heute Nacht stoppte ich den GAEBUS und konnte mich heute morgen einloggen und alles wie gewohnt am Raspi ausführen.

Ich werde das jetzt weiter beobachten und nach ein paar Tagen wieder den Gegentest machen und euch berichten.
Ist irgend jemand so was ähnliches schon aufgefallen? Der Fehler tritt nicht nur mit SSH auf, sondern auch unter Telnet!

eBus Raspi = Raspberry + und es läuft nur der ebus Dämon auf diesem Gerät. Vernetzt mit 100 Mbit Kupferkabel. Fhem kommuniziert alle 10 Minuten per ECMD und auch der GAEBUS läuft mit 4 -6 Testdaten.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

jamesgo

#62
Hallo Reinhart,

sowas ist mir bisher noch nicht aufgefallen.

Was ich mir vorstellen könnte:

- Ebusd erzeugt pro Verbindung  (ebusctl oder telnet oder GAEBUS oder ECMD) einen Thread
- Wenn nun nach Abbau der Verbindung noch ein Thread übrig bleibt könnte das Nebeneffekte haben

Schau doch mal wieviele Threads dein ebusd hat. "ps -L <pid von ebusd>"
(bei einem GAEBUS habe ich 4 Threads)

Grüße
Andy

Reinhart

@Jamesgo

ich arbeite gerade am Zeitprogramm um die Timer bequem setzen zu können, aber GAEBUS weigert sich den zusammen gebauten String zu übernehmen. Mit ECMD funktioniert derselbe String Problemlos und setzt auch brav die Zeiten.

GAEBUS arbeitet den übergebenen String bis zum Auftreten des ersten ";" ab und meint des Ende des Input sei erreicht und schneidet die nachfolgenden Parameter einfach ab. Setzt man bei GAEBUS im Eingabefenster diesen String hinein, dann funktioniert er.
Hast du eine Ahnung wie man das umgehen könnte?

ECMD Log
2015.09.25 12:24:34 1: EBUS: unexpected answer "done\n\n" received (wrote "write -c 470mc mcTTMonday 04:30;19:30;24:00;24:00;24:00;24:00;selected\n", expected .*)
2015.09.25 12:24:34 3: get ZeitfensterSchreibenMo ZeitfensterSchreibenMo : ZeitfensterSchreibenMo done


GAEBUS Log
2015.09.25 12:24:34 3: ebus1 execute w -c 470mc mcTTMonday 04:30
2015.09.25 12:24:34 3: ebus1 answer w nMo ERR: end of input reached
2015.09.25 12:24:34 3: set ebus1 nMo 04:30;19:30;24:00;24:00;24:00;24:00;selected : ERR: end of input reached
Unknown command 19:30, try help.
Unknown command 24:00, try help.
Unknown command 24:00, try help.
Unknown command 24:00, try help.
Unknown command 24:00, try help.


GAEBUS Aufruf aus fhem
fhem "set ebus1 nMo ". ReadingsVal("Mo_Fr2","HHMM1",0) . chr(59) . ReadingsVal("Mo_Fr2","HHMM2",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected";;\
}

nMo ist das Attribute was bei dem Schreibattribut mit GAEBUS gesetzt wurde.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

#64
Timer Eingabe für die CalorMatic 430 und 470!

Ich habe mir heute die Zeitprogramme für die CalorMatic für weitere Test mit dem GAEBUS fertig gemacht.
Vorerst funktioniert das Ganze aber nur unter ECMD, aber in der Hoffnung, das es hier einige testen finden wir vielleicht gemeinsam die Lösung wie man die Parameter für den GAEBUS richtig übergeben muss, damit dieser nicht glaubt es sei das Kommandoende erreicht. Es geht dabei gezielt um das ";".

So wie im Listing definiert, steuert es die Calormatic 430 + 470. Durch anpassen der Variablennamen können jedoch auch andere Devices oder Zirkulationspumpen gesetzt werden. Ich habe rein aus Platzgründen auf den 3. Tagestimer verzichtet, dieser kann jedoch bei Bedarf leicht hinzugefügt werden. Dafür habe ich die Steuerung auf 7 Tage ausgelegt, also jeden Tag einzeln anstatt nur Blockzeiten.

Bitte nach erster Inbetriebnahme eines Timers, auch den 2.Timer setzen (bei 24:00 - 24:00 setzt Vaillant diesen auf --), da sonst der Wert "0" nicht übernommen werden kann und sonst nichts geschrieben wird.

# einmal in fhem.cfg zu definieren
#define EBUS ECMD telnet IP-Adresse_eBus:8888
#attr EBUS classdefs bai00.class=/opt/fhem/FHEM/bai00.cfg
#attr EBUS icon usb
#attr EBUS room HeizProgramm


#################################
#       Zeitprogramme                                           #
#################################

define TimeMo dummy
attr TimeMo alias 1 Montag
attr TimeMo group Zeiteingabe
attr TimeMo readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeMo room HeizProgramm
attr TimeMo setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeMo stateFormat HHMM1 - HHMM2
attr TimeMo webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4

define TimeDi dummy
attr TimeDi alias 2 Dienstag
attr TimeDi group Zeiteingabe
attr TimeDi readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeDi room HeizProgramm
attr TimeDi setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeDi stateFormat HHMM1 - HHMM2
attr TimeDi webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4


define TimeMi dummy
attr TimeMi alias 3 Mittwoch
attr TimeMi group Zeiteingabe
attr TimeMi readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeMi room HeizProgramm
attr TimeMi setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeMi stateFormat HHMM1 - HHMM2
attr TimeMi webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4


define TimeDo dummy
attr TimeDo alias 4 Donnerstag
attr TimeDo group Zeiteingabe
attr TimeDo readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeDo room HeizProgramm
attr TimeDo setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeDo stateFormat HHMM1 - HHMM2
attr TimeDo webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4

define TimeFr dummy
attr TimeFr alias 5 Freitag
attr TimeFr group Zeiteingabe
attr TimeFr readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeFr room HeizProgramm
attr TimeFr setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeFr stateFormat HHMM1 - HHMM2
attr TimeFr webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4

define TimeSa dummy
attr TimeSa alias 6 Samstag
attr TimeSa group Zeiteingabe
attr TimeSa readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeSa room HeizProgramm
attr TimeSa setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeSa stateFormat HHMM1 - HHMM2
attr TimeSa webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4

define TimeSo dummy
attr TimeSo alias 7 Sonntag
attr TimeSo group Zeiteingabe
attr TimeSo readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeSo room HeizProgramm
attr TimeSo setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeSo stateFormat HHMM1 - HHMM2
attr TimeSo webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4


# Datum in den Dummy kopieren
define DateCopy notify TimeMo {\
  fhem "set TimeMo " . ReadingsVal("TimeMo","HHMM1",0) . " " . ReadingsVal("TimeMo","HHMM2",0) . " " . ReadingsVal("TimeMo","HHMM3",0) . " " . ReadingsVal("TimeMo","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "get ZeitfensterSchreibenMo ZeitfensterSchreibenMo";;\
  Log 1, "Zeitprog=" . ReadingsVal("TimeMo","HHMM1",0) . chr(59) . ReadingsVal("TimeMo","HHMM2",0) . chr(59) . ReadingsVal("TimeMo","HHMM3",0) . chr(59) . ReadingsVal("TimeMo","HHMM4",0) . chr(59) ."24:00" . chr(59) . "24:00" . chr(59) . "selected";;\
fhem "set ebus1 nMo ". ReadingsVal("TimeMo","HHMM1",0) . chr(59) . ReadingsVal("TimeMo","HHMM2",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected";;\
}
attr DateCopy room HeizProgramm

define DateCopy2 notify TimeDi {\
  fhem "set TimeDi " . ReadingsVal("TimeDi","HHMM1",0) . " " . ReadingsVal("TimeDi","HHMM2",0) . " " . ReadingsVal("TimeDi","HHMM3",0) . " " . ReadingsVal("TimeDi","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "get ZeitfensterSchreibenDi ZeitfensterSchreibenDi";;\
  Log 1, "Zeitprog=" . ReadingsVal("TimeDi","HHMM1",0) . chr(59) . ReadingsVal("TimeDi","HHMM2",0) . chr(59) . ReadingsVal("TimeDi","HHMM3",0) . chr(59) . ReadingsVal("TimeDi","HHMM4",0) . chr(59) ."24:00" . chr(59) . "24:00" . chr(59) . "selected";;\
}
attr DateCopy2 room HeizProgramm

define DateCopy3 notify TimeMi {\
  fhem "set TimeMi " . ReadingsVal("TimeMi","HHMM1",0) . " " . ReadingsVal("TimeMi","HHMM2",0) . " " . ReadingsVal("TimeMi","HHMM3",0) . " " . ReadingsVal("TimeMi","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "get ZeitfensterSchreibenMi ZeitfensterSchreibenMi";;\
  Log 1, "Zeitprog=" . ReadingsVal("TimeMi","HHMM1",0) . chr(59) . ReadingsVal("TimeMi","HHMM2",0) . chr(59) . ReadingsVal("TimeMi","HHMM3",0) . chr(59) . ReadingsVal("TimeMi","HHMM4",0) . chr(59) ."24:00" . chr(59) . "24:00" . chr(59) . "selected";;\
}
attr DateCopy3 room HeizProgramm

define DateCopy4 notify TimeDo {\
  fhem "set TimeDo " . ReadingsVal("TimeDo","HHMM1",0) . " " . ReadingsVal("TimeDo","HHMM2",0) . " " . ReadingsVal("TimeDo","HHMM3",0) . " " . ReadingsVal("TimeDo","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "get ZeitfensterSchreibenDo ZeitfensterSchreibenDo";;\
  Log 1, "Zeitprog=" . ReadingsVal("TimeDo","HHMM1",0) . chr(59) . ReadingsVal("TimeDo","HHMM2",0) . chr(59) . ReadingsVal("TimeDo","HHMM3",0) . chr(59) . ReadingsVal("TimeDo","HHMM4",0) . chr(59) ."24:00" . chr(59) . "24:00" . chr(59) . "selected";;\
}
attr DateCopy4 room HeizProgramm


define DateCopy5 notify TimeFr {\
  fhem "set TimeFr " . ReadingsVal("TimeFr","HHMM1",0) . " " . ReadingsVal("TimeFr","HHMM2",0) . " " . ReadingsVal("TimeFr","HHMM3",0) . " " . ReadingsVal("TimeFr","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "get ZeitfensterSchreibenFr ZeitfensterSchreibenFr";;\
  Log 1, "Zeitprog=" . ReadingsVal("TimeFr","HHMM1",0) . chr(59) . ReadingsVal("TimeFr","HHMM2",0) . chr(59) . ReadingsVal("TimeFr","HHMM3",0) . chr(59) . ReadingsVal("TimeFr","HHMM4",0) . chr(59) ."24:00" . chr(59) . "24:00" . chr(59) . "selected";;\
}
attr DateCopy5 room HeizProgramm


define DateCopy6 notify TimeSa {\
  fhem "set TimeSa " . ReadingsVal("TimeSa","HHMM1",0) . " " . ReadingsVal("TimeSa","HHMM2",0) . " " . ReadingsVal("TimeSa","HHMM3",0) . " " . ReadingsVal("TimeSa","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "get ZeitfensterSchreibenSa ZeitfensterSchreibenSa";;\
  Log 1, "Zeitprog=" . ReadingsVal("TimeSa","HHMM1",0) . chr(59) . ReadingsVal("TimeSa","HHMM2",0) . chr(59) . ReadingsVal("TimeSa","HHMM3",0) . chr(59) . ReadingsVal("TimeSa","HHMM4",0) . chr(59) ."24:00" . chr(59) . "24:00" . chr(59) . "selected";;\
}
attr DateCopy6 room HeizProgramm


define DateCopy7 notify TimeSo {\
  fhem "set TimeSo " . ReadingsVal("TimeSo","HHMM1",0) . " " . ReadingsVal("TimeSo","HHMM2",0) . " " . ReadingsVal("TimeSo","HHMM3",0) . " " . ReadingsVal("TimeSo","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "get ZeitfensterSchreibenSo ZeitfensterSchreibenSo";;\
  Log 1, "Zeitprog=" . ReadingsVal("TimeSo","HHMM1",0) . chr(59) . ReadingsVal("TimeSo","HHMM2",0) . chr(59) . ReadingsVal("TimeSo","HHMM3",0) . chr(59) . ReadingsVal("TimeSo","HHMM4",0) . chr(59) ."24:00" . chr(59) . "24:00" . chr(59) . "selected";;\
}
attr DateCopy7 room HeizProgramm

#OK Button Kopieren
define OkAll dummy
attr OkAll alias Montag auf alle Tage kopieren =>Di,Mi,Do,Fr,Sa,So
attr OkAll devStateIcon ok:general_ok:ok
attr OkAll eventMap on:ok off:ok
attr OkAll group Zeiteingabe
attr OkAll room HeizProgramm

define DateCopyAll notify OkAll {\
  fhem "attr DateCopy2 disable 1";;\
  fhem "set TimeDi " . ReadingsVal("TimeMo","state",0);;\
  fhem "setreading TimeDi HHMM1 " . ReadingsVal("TimeMo","HHMM1",0);;\
  fhem "setreading TimeDi HHMM2 " . ReadingsVal("TimeMo","HHMM2",0);;\
  fhem "setreading TimeDi HHMM3 " . ReadingsVal("TimeMo","HHMM3",0);;\
  fhem "attr DateCopy2 disable 0";;\
  fhem "setreading TimeDi HHMM4 " . ReadingsVal("TimeMo","HHMM4",0);;\
  fhem "attr DateCopy3 disable 1";;\
  fhem "set TimeMi " . ReadingsVal("TimeMo","state",0);;\
  fhem "setreading TimeMi HHMM1 " . ReadingsVal("TimeMo","HHMM1",0);;\
  fhem "setreading TimeMi HHMM2 " . ReadingsVal("TimeMo","HHMM2",0);;\
  fhem "setreading TimeMi HHMM3 " . ReadingsVal("TimeMo","HHMM3",0);;\
  fhem "attr DateCopy3 disable 0";;\
  fhem "setreading TimeMi HHMM4 " . ReadingsVal("TimeMo","HHMM4",0);;\
  fhem "attr DateCopy4 disable 1";;\
  fhem "set TimeDo " . ReadingsVal("TimeMo","state",0);;\
  fhem "setreading TimeDo HHMM1 " . ReadingsVal("TimeMo","HHMM1",0);;\
  fhem "setreading TimeDo HHMM2 " . ReadingsVal("TimeMo","HHMM2",0);;\
  fhem "setreading TimeDo HHMM3 " . ReadingsVal("TimeMo","HHMM3",0);;\
  fhem "attr DateCopy4 disable 0";;\
  fhem "setreading TimeDo HHMM4 " . ReadingsVal("TimeMo","HHMM4",0);;\
  fhem "attr DateCopy5 disable 1";;\
  fhem "set TimeFr " . ReadingsVal("TimeMo","state",0);;\
  fhem "setreading TimeFr HHMM1 " . ReadingsVal("TimeMo","HHMM1",0);;\
  fhem "setreading TimeFr HHMM2 " . ReadingsVal("TimeMo","HHMM2",0);;\
  fhem "setreading TimeFr HHMM3 " . ReadingsVal("TimeMo","HHMM3",0);;\
  fhem "attr DateCopy5 disable 0";;\
  fhem "setreading TimeFr HHMM4 " . ReadingsVal("TimeMo","HHMM4",0);;\
  fhem "attr DateCopy6 disable 1";;\
  fhem "set TimeSa " . ReadingsVal("TimeMo","state",0);;\
  fhem "setreading TimeSa HHMM1 " . ReadingsVal("TimeMo","HHMM1",0);;\
  fhem "setreading TimeSa HHMM2 " . ReadingsVal("TimeMo","HHMM2",0);;\
  fhem "setreading TimeSa HHMM3 " . ReadingsVal("TimeMo","HHMM3",0);;\
  fhem "attr DateCopy6 disable 0";;\
  fhem "setreading TimeSa HHMM4 " . ReadingsVal("TimeMo","HHMM4",0);;\
  fhem "attr DateCopy7 disable 1";;\
  fhem "set TimeSo " . ReadingsVal("TimeMo","state",0);;\
  fhem "setreading TimeSo HHMM1 " . ReadingsVal("TimeMo","HHMM1",0);;\
  fhem "setreading TimeSo HHMM2 " . ReadingsVal("TimeMo","HHMM2",0);;\
  fhem "setreading TimeSo HHMM3 " . ReadingsVal("TimeMo","HHMM3",0);;\
  fhem "attr DateCopy7 disable 0";;\
  fhem "setreading TimeSo HHMM4 " . ReadingsVal("TimeMo","HHMM4",0);;\
}
attr DateCopyAll room HeizProgramm



#####################################
#       ECMD Definitionen           #
#####################################
define ZeitfensterSchreibenMo ECMDDevice bai00.class
attr ZeitfensterSchreibenMo IODev EBUS
attr ZeitfensterSchreibenMo room HeizProgramm

define ZeitfensterSchreibenDi ECMDDevice bai00.class
attr ZeitfensterSchreibenDi IODev EBUS
attr ZeitfensterSchreibenDi room HeizProgramm

define ZeitfensterSchreibenMi ECMDDevice bai00.class
attr ZeitfensterSchreibenMi IODev EBUS
attr ZeitfensterSchreibenMi room HeizProgramm

define ZeitfensterSchreibenDo ECMDDevice bai00.class
attr ZeitfensterSchreibenDo IODev EBUS
attr ZeitfensterSchreibenDo room HeizProgramm

define ZeitfensterSchreibenFr ECMDDevice bai00.class
attr ZeitfensterSchreibenFr IODev EBUS
attr ZeitfensterSchreibenFr room HeizProgramm

define ZeitfensterSchreibenSa ECMDDevice bai00.class
attr ZeitfensterSchreibenSa IODev EBUS
attr ZeitfensterSchreibenSa room HeizProgramm

define ZeitfensterSchreibenSo ECMDDevice bai00.class
attr ZeitfensterSchreibenSo IODev EBUS
attr ZeitfensterSchreibenSo room HeizProgramm


Version ECMD Dieser Code in fhem.cfg

get ZeitfensterSchreibenMo cmd {"write -c 470mc mcTTMonday ".ReadingsVal("TimeMo","HHMM1",0) . chr(59) . ReadingsVal("TimeMo","HHMM2",0) . chr(59) . ReadingsVal("TimeMo","HHMM3",0) . chr(59) . ReadingsVal("TimeMo","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenMo expect ".*"
get ZeitfensterSchreibenMo postproc  { $_ }

get ZeitfensterSchreibenDi cmd {"write -c 470mc mcTTTuesday ".ReadingsVal("TimeDi","HHMM1",0) . chr(59) . ReadingsVal("TimeDi","HHMM2",0) . chr(59) . ReadingsVal("TimeDi","HHMM3",0) . chr(59) . ReadingsVal("TimeDi","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenDi expect ".*"
get ZeitfensterSchreibenDi postproc  { $_ }

get ZeitfensterSchreibenMi cmd {"write -c 470mc mcTTWednesday ".ReadingsVal("TimeMi","HHMM1",0) . chr(59) . ReadingsVal("TimeMi","HHMM2",0) . chr(59) . ReadingsVal("TimeMi","HHMM3",0) . chr(59) . ReadingsVal("TimeMi","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenMi expect ".*"
get ZeitfensterSchreibenMi postproc  { $_ }

get ZeitfensterSchreibenDo cmd {"write -c 470mc mcTTThursday ".ReadingsVal("TimeDo","HHMM1",0) . chr(59) . ReadingsVal("TimeDo","HHMM2",0) . chr(59) . ReadingsVal("TimeDo","HHMM3",0) . chr(59) . ReadingsVal("TimeDo","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenDo expect ".*"
get ZeitfensterSchreibenDo postproc  { $_ }

get ZeitfensterSchreibenFr cmd {"write -c 470mc mcTTFriday ".ReadingsVal("TimeFr","HHMM1",0) . chr(59) . ReadingsVal("TimeFr","HHMM2",0) . chr(59) . ReadingsVal("TimeFr","HHMM3",0) . chr(59) . ReadingsVal("TimeFr","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenFr expect ".*"
get ZeitfensterSchreibenFr postproc  { $_ }

get ZeitfensterSchreibenSa cmd {"write -c 470mc mcTTSaturday ".ReadingsVal("TimeSa","HHMM1",0) . chr(59) . ReadingsVal("TimeSa","HHMM2",0) . chr(59) . ReadingsVal("TimeSa","HHMM3",0) . chr(59) . ReadingsVal("TimeSa","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenSa expect ".*"
get ZeitfensterSchreibenSa postproc  { $_ }

get ZeitfensterSchreibenSo cmd {"write -c 470mc mcTTSunday ".ReadingsVal("TimeSo","HHMM1",0) . chr(59) . ReadingsVal("TimeSo","HHMM2",0) . chr(59) . ReadingsVal("TimeSo","HHMM3",0) . chr(59) . ReadingsVal("TimeSo","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenSo expect ".*"
get ZeitfensterSchreibenSo postproc  { $_ }

diesen Code in die "bai00.cfg", wenn nicht vorhanden dann im Verz. "Fhem" anlegen.

Im Prinzip braucht nur eine Zeile im notify statt "get ZeitfensterSchreibenXX"  (oder den Log Eintrag verwenden und umbauen) erweitert werden und es kann schon über den GAEBUS damit gesteuert werden. Die bai00.cfg entfällt dann.
Wer genauere Zeiteingaben benötigt als 30 Minuten Abstände, kann einfach in der setList die gewünschten Vorgaben ändern. ZB: in der Zeit zwischen 05:00 - 07:00 dann in 15 Minuten Abständen.
Der notify wird bei jeder Änderung in einem der 4 Eingabefenster getriggert, was auch Sinn macht, denn wenn nur ein Timer geändert wird soll ja dieser auch geschrieben werden.


Bei der Version GAEBUS muss bei den Schreibvariablen des Timers jeweils der Name "nMo" bzw nDi,NMi,nDo,nFr,nSa,nSo für den jeweiligen Tag definiert werden. Wer andere Namen verwenden will muss dies im Listing austauschen.


#################################
#       Zeitprogramme           #
#################################

define TimeMo dummy
attr TimeMo alias 1 Montag
attr TimeMo group Zeiteingabe
attr TimeMo readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeMo room HeizProgramm
attr TimeMo setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeMo stateFormat HHMM1 - HHMM2
attr TimeMo webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4

define TimeDi dummy
attr TimeDi alias 2 Dienstag
attr TimeDi group Zeiteingabe
attr TimeDi readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeDi room HeizProgramm
attr TimeDi setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeDi stateFormat HHMM1 - HHMM2
attr TimeDi webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4


define TimeMi dummy
attr TimeMi alias 3 Mittwoch
attr TimeMi group Zeiteingabe
attr TimeMi readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeMi room HeizProgramm
attr TimeMi setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeMi stateFormat HHMM1 - HHMM2
attr TimeMi webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4


define TimeDo dummy
attr TimeDo alias 4 Donnerstag
attr TimeDo group Zeiteingabe
attr TimeDo readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeDo room HeizProgramm
attr TimeDo setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeDo stateFormat HHMM1 - HHMM2
attr TimeDo webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4

define TimeFr dummy
attr TimeFr alias 5 Freitag
attr TimeFr group Zeiteingabe
attr TimeFr readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeFr room HeizProgramm
attr TimeFr setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeFr stateFormat HHMM1 - HHMM2
attr TimeFr webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4

define TimeSa dummy
attr TimeSa alias 6 Samstag
attr TimeSa group Zeiteingabe
attr TimeSa readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeSa room HeizProgramm
attr TimeSa setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeSa stateFormat HHMM1 - HHMM2
attr TimeSa webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4

define TimeSo dummy
attr TimeSo alias 7 Sonntag
attr TimeSo group Zeiteingabe
attr TimeSo readingList HHMM1 HHMM2 HHMM3 HHMM4
attr TimeSo room HeizProgramm
attr TimeSo setList HHMM1:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM2:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM3:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00 HHMM4:00:00,00:30,01:00,01:30,02:00,02:30,03:00,03:30,04:00,04:30,05:00,05:30,06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00,11:30,12:00,12:30,13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00,18:30,19:00,19:30,20:00,20:30,21:00,21:30,22:00,22:30,23:00,23:30,24:00
attr TimeSo stateFormat HHMM1 - HHMM2
attr TimeSo webCmd HHMM1: bis :HHMM2: Timer2 :HHMM3: bis :HHMM4


# Datum in den Dummy kopieren
define DateCopy notify TimeMo {\
  fhem "set TimeMo " . ReadingsVal("TimeMo","HHMM1",0) . " " . ReadingsVal("TimeMo","HHMM2",0) . " " . ReadingsVal("TimeMo","HHMM3",0) . " " . ReadingsVal("TimeMo","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "set ebus1 nMo " . ReadingsVal("TimeMo","HHMM1",0) . chr(59) . chr(59) . ReadingsVal("TimeMo","HHMM2",0) . chr(59)  . chr(59) . "24:00" . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "selected";;\
}
attr DateCopy room HeizProgramm


define DateCopy2 notify TimeDi {\
  fhem "set TimeDi " . ReadingsVal("TimeDi","HHMM1",0) . " " . ReadingsVal("TimeDi","HHMM2",0) . " " . ReadingsVal("TimeDi","HHMM3",0) . " " . ReadingsVal("TimeDi","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "set ebus1 nDi " . ReadingsVal("TimeDi","HHMM1",0) . chr(59) . chr(59) . ReadingsVal("TimeDi","HHMM2",0) . chr(59)  . chr(59) . ReadingsVal("TimeDi","HHMM3",0). chr(59) . chr(59) . ReadingsVal("TimeDi","HHMM4",0) . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "selected";;\
}
attr DateCopy2 room HeizProgramm

define DateCopy3 notify TimeMi {\
  fhem "set TimeMi " . ReadingsVal("TimeMi","HHMM1",0) . " " . ReadingsVal("TimeMi","HHMM2",0) . " " . ReadingsVal("TimeMi","HHMM3",0) . " " . ReadingsVal("TimeMi","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "set ebus1 nMi " . ReadingsVal("TimeMi","HHMM1",0) . chr(59) . chr(59) . ReadingsVal("TimeMi","HHMM2",0) . chr(59)  . chr(59) . ReadingsVal("TimeMi","HHMM3",0)  . chr(59) . chr(59) . ReadingsVal("TimeMi","HHMM4",0) . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "selected";;\
}
attr DateCopy3 room HeizProgramm

define DateCopy4 notify TimeDo {\
  fhem "set TimeDo " . ReadingsVal("TimeDo","HHMM1",0) . " " . ReadingsVal("TimeDo","HHMM2",0) . " " . ReadingsVal("TimeDo","HHMM3",0) . " " . ReadingsVal("TimeDo","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "set ebus1 nDo " . ReadingsVal("TimeDo","HHMM1",0) . chr(59) . chr(59) . ReadingsVal("TimeDo","HHMM2",0) . chr(59)  . chr(59) . ReadingsVal("TimeDo","HHMM3",0) . chr(59) . chr(59) . ReadingsVal("TimeDo","HHMM4",0). chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "selected";;\
}
attr DateCopy4 room HeizProgramm


define DateCopy5 notify TimeFr {\
  fhem "set TimeFr " . ReadingsVal("TimeFr","HHMM1",0) . " " . ReadingsVal("TimeFr","HHMM2",0) . " " . ReadingsVal("TimeFr","HHMM3",0) . " " . ReadingsVal("TimeFr","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "set ebus1 nFr " . ReadingsVal("TimeFr","HHMM1",0) . chr(59) . chr(59) . ReadingsVal("TimeFr","HHMM2",0) . chr(59)  . chr(59) . ReadingsVal("TimeFr","HHMM3",0) . chr(59) . chr(59) . ReadingsVal("TimeFr","HHMM4",0) . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "selected";;\
}
attr DateCopy5 room HeizProgramm


define DateCopy6 notify TimeSa {\
  fhem "set TimeSa " . ReadingsVal("TimeSa","HHMM1",0) . " " . ReadingsVal("TimeSa","HHMM2",0) . " " . ReadingsVal("TimeSa","HHMM3",0) . " " . ReadingsVal("TimeSa","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "set ebus1 nSa " . ReadingsVal("TimeSa","HHMM1",0) . chr(59) . chr(59) . ReadingsVal("TimeSa","HHMM2",0) . chr(59)  . chr(59) . ReadingsVal("TimeSa","HHMM3",0) . chr(59) . chr(59) . ReadingsVal("TimeSa","HHMM4",0) . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "selected";;\
}
attr DateCopy6 room HeizProgramm


define DateCopy7 notify TimeSo {\
  fhem "set TimeSo " . ReadingsVal("TimeSo","HHMM1",0) . " " . ReadingsVal("TimeSo","HHMM2",0) . " " . ReadingsVal("TimeSo","HHMM3",0) . " " . ReadingsVal("TimeSo","HHMM4",0) ." 24:00 24:00 24:00 24:00 selected";;\
  fhem "set ebus1 nSo " . ReadingsVal("TimeSo","HHMM1",0) . chr(59) . chr(59) . ReadingsVal("TimeSo","HHMM2",0) . chr(59)  . chr(59) . ReadingsVal("TimeSo","HHMM3",0) . chr(59) . chr(59) . ReadingsVal("TimeSo","HHMM4",0) . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "selected";;\
}
attr DateCopy7 room HeizProgramm


#OK Button Kopieren
define OkAll dummy
attr OkAll alias Montag auf alle Tage kopieren =>Di,Mi,Do,Fr,Sa,So
attr OkAll devStateIcon ok:general_ok:ok
attr OkAll eventMap on:ok off:ok
attr OkAll group Zeiteingabe
attr OkAll room HeizProgramm

define DateCopyAll notify OkAll {\
  fhem "attr DateCopy2 disable 1";;\
  fhem "set TimeDi " . ReadingsVal("TimeMo","state",0);;\
  fhem "setreading TimeDi HHMM1 " . ReadingsVal("TimeMo","HHMM1",0);;\
  fhem "setreading TimeDi HHMM2 " . ReadingsVal("TimeMo","HHMM2",0);;\
  fhem "setreading TimeDi HHMM3 " . ReadingsVal("TimeMo","HHMM3",0);;\
  fhem "attr DateCopy2 disable 0";;\
  fhem "setreading TimeDi HHMM4 " . ReadingsVal("TimeMo","HHMM4",0);;\
  fhem "attr DateCopy3 disable 1";;\
  fhem "set TimeMi " . ReadingsVal("TimeMo","state",0);;\
  fhem "setreading TimeMi HHMM1 " . ReadingsVal("TimeMo","HHMM1",0);;\
  fhem "setreading TimeMi HHMM2 " . ReadingsVal("TimeMo","HHMM2",0);;\
  fhem "setreading TimeMi HHMM3 " . ReadingsVal("TimeMo","HHMM3",0);;\
  fhem "attr DateCopy3 disable 0";;\
  fhem "setreading TimeMi HHMM4 " . ReadingsVal("TimeMo","HHMM4",0);;\
  fhem "attr DateCopy4 disable 1";;\
  fhem "set TimeDo " . ReadingsVal("TimeMo","state",0);;\
  fhem "setreading TimeDo HHMM1 " . ReadingsVal("TimeMo","HHMM1",0);;\
  fhem "setreading TimeDo HHMM2 " . ReadingsVal("TimeMo","HHMM2",0);;\
  fhem "setreading TimeDo HHMM3 " . ReadingsVal("TimeMo","HHMM3",0);;\
  fhem "attr DateCopy4 disable 0";;\
  fhem "setreading TimeDo HHMM4 " . ReadingsVal("TimeMo","HHMM4",0);;\
  fhem "attr DateCopy5 disable 1";;\
  fhem "set TimeFr " . ReadingsVal("TimeMo","state",0);;\
  fhem "setreading TimeFr HHMM1 " . ReadingsVal("TimeMo","HHMM1",0);;\
  fhem "setreading TimeFr HHMM2 " . ReadingsVal("TimeMo","HHMM2",0);;\
  fhem "setreading TimeFr HHMM3 " . ReadingsVal("TimeMo","HHMM3",0);;\
  fhem "attr DateCopy5 disable 0";;\
  fhem "setreading TimeFr HHMM4 " . ReadingsVal("TimeMo","HHMM4",0);;\
  fhem "attr DateCopy6 disable 1";;\
  fhem "set TimeSa " . ReadingsVal("TimeMo","state",0);;\
  fhem "setreading TimeSa HHMM1 " . ReadingsVal("TimeMo","HHMM1",0);;\
  fhem "setreading TimeSa HHMM2 " . ReadingsVal("TimeMo","HHMM2",0);;\
  fhem "setreading TimeSa HHMM3 " . ReadingsVal("TimeMo","HHMM3",0);;\
  fhem "attr DateCopy6 disable 0";;\
  fhem "setreading TimeSa HHMM4 " . ReadingsVal("TimeMo","HHMM4",0);;\
  fhem "attr DateCopy7 disable 1";;\
  fhem "set TimeSo " . ReadingsVal("TimeMo","state",0);;\
  fhem "setreading TimeSo HHMM1 " . ReadingsVal("TimeMo","HHMM1",0);;\
  fhem "setreading TimeSo HHMM2 " . ReadingsVal("TimeMo","HHMM2",0);;\
  fhem "setreading TimeSo HHMM3 " . ReadingsVal("TimeMo","HHMM3",0);;\
  fhem "attr DateCopy7 disable 0";;\
  fhem "setreading TimeSo HHMM4 " . ReadingsVal("TimeMo","HHMM4",0);;\
}
attr DateCopyAll room HeizProgramm

Version GAEBUS

LG
Reinhart

edit by Reinhart 26.9: Copy Funktion hinzugefügt, Mo auf alle Tage!
edit by Reinhart 26.9: GAEBUS Version hinzugefügt
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Jojo11

#65
@Jamesgo

Mir ist Folgendes aufgefallen: Ab und zu habe ich ein paar Lesefehler, die ich mir nicht erklären kann.

2015-09-25 15:59:30.141 [update notice] unknown MS cmd: 1008b5110102 / 06033c96468c78
2015-09-25 15:59:32.132 [update notice] unknown MS cmd: 1008b510090000006effff41ff00 / 0101
2015-09-25 15:59:40.106 [update notice] update broadcast outsidetemp QQ=10: 16.625
2015-09-25 15:59:42.188 [update notice] unknown MS cmd: 1008b510090000006effff41ff00 / 0101
2015-09-25 15:59:46.391 [bus error] ERR: CRC error, retry
2015-09-25 15:59:46.993 [bus error] ERR: CRC error, retry
2015-09-25 15:59:47.590 [bus error] ERR: CRC error, retry
2015-09-25 15:59:48.098 [bus error] ERR: arbitration lost, retry
2015-09-25 15:59:48.371 [bus error] ERR: CRC error
2015-09-25 15:59:48.371 [main error] send message: ERR: CRC error
2015-09-25 15:59:50.225 [update notice] unknown MS cmd: 1008b5110102 / 06033c96468c78
2015-09-25 15:59:52.248 [update notice] unknown MS cmd: 1008b510090000006effff41ff00 / 0101
...
2015-09-25 16:09:41.138 [update notice] unknown MS cmd: 1008b5110102 / 06033c96468c78
2015-09-25 16:09:43.129 [update notice] unknown MS cmd: 1008b510090000336effff00ff00 / 0101
2015-09-25 16:09:49.122 [update notice] unknown MS cmd: 1008b5110101 / 0936350080ff690000ff
2015-09-25 16:09:51.108 [update notice] update broadcast outsidetemp QQ=10: 16.625
2015-09-25 16:09:53.148 [update notice] unknown MS cmd: 1008b510090000336effff00ff00 / 0101
2015-09-25 16:10:01.169 [update notice] unknown MS cmd: 1008b5110102 / 06033c96468c78
2015-09-25 16:10:03.164 [update notice] unknown MS cmd: 1008b510090000336effff00ff00 / 0101
2015-09-25 16:10:13.117 [bus error] ERR: arbitration lost, retry
2015-09-25 16:10:13.207 [update notice] unknown MS cmd: 1008b510090000336effff00ff00 / 0101
2015-09-25 16:10:23.183 [update notice] unknown MS cmd: 1008b510090000336effff00ff00 / 0101
2015-09-25 16:10:31.155 [update notice] update broadcast vdatetime QQ=10: 16:10:27;25.09.2015
2015-09-25 16:10:31.393 [update notice] unknown MS cmd: 1008b512020064 / 00
2015-09-25 16:10:33.217 [update notice] unknown MS cmd: 1008b510090000336effff00ff00 / 0101

Könnte man das Modul dahingehend verbessern, dass diese Fehler nicht zu einem Durcheinander in den Readings führen? Es scheint so, als dass sich die Daten bei einem solchen Fehler verschieben, was wiederum dann Readings erzeugt, die aus den eigentlichen Zahlenwerten bestehen.
Momentan helfe ich mir damit, ab und zu alle Readings zu löschen.

Nachtrag: Evtl. liegt es auch daran, dass ich unterschiedliche csv-Dateien beim ebusd und für GAEBUS verwende. Naja, bin halt noch am Testen...

schöne Grüße
Jo

Jojo11

Zitat von: Reinhart am 25 September 2015, 17:08:15
Timer Eingabe für die CalorMatic 430 und 470!
...
LG
Reinhart

Sieht sehr gut aus, danke! Sobald GAEBUS damit kompatibel ist werde ich es auch mal implementieren.

schöne Grüße
Jo

amunra

Zitat von: Reinhart am 25 September 2015, 17:08:15
Der notify wird bei jeder Änderung in einem der 4 Eingabefenster getriggert, was auch Sinn macht, denn wenn nur ein Timer geändert wird soll ja dieser auch geschrieben werden.
das ist mMn suboptimal, weil das zu vielen Schreibvorgängen führt.
Werte Einstellen wie man's braucht und dann "Schreibt Trigger absetzten" wäre mMn besser.
(Man könnte ein dropdown "ok" implementierten (pro Tag) - der notify reagiert nur daruf - wäre eine Idee - ich persönlich werde das noch anders umsetzen...)
Das nur als Anmerkung.
Viele Grüße
Arthur

amunra

Zitat von: Jojo11 am 25 September 2015, 17:14:21
Nachtrag: Evtl. liegt es auch daran, dass ich unterschiedliche csv-Dateien beim ebusd und für GAEBUS verwende. Naja, bin halt noch am Testen...
Das Modul sollte dahingehend umgestellt werden, dass es die EBUSD commandos ("find") verwendet, damit würden diese problematischen CSV handlings wegfallen, das hatte ich bei meiner ersten Version auch und das führte genau zu sowas.
VG Arthur

jamesgo

Zitataber in der Hoffnung, das es hier einige testen finden wir vielleicht gemeinsam die Lösung wie man die Parameter für den GAEBUS richtig übergeben muss, damit dieser nicht glaubt es sei das Kommandoende erreicht. Es geht dabei gezielt um das ";".

Ich kann mir das am Sonntag anschauen ... da gibt es bestimmt eine Lösung.

ZitatDas Modul sollte dahingehend umgestellt werden, dass es die EBUSD commandos ("find") verwendet, damit würden diese problematischen CSV handlings wegfallen, das hatte ich bei meiner ersten Version auch und das führte genau zu sowas.

Der "find" liefert leider nicht die Kommentare ... und die finde ich beim Testen sehr nützlich.

amunra

Zitat von: jamesgo am 25 September 2015, 20:12:49
Der "find" liefert leider nicht die Kommentare ... und die finde ich beim Testen sehr nützlich.
bitte spezifizieren.
Das hier:
(http://up.picr.de/23133503ix.jpg)
kommt per find command - und das ist gefiltert.
Viele Grüße
Arthur

Reinhart

Zitat von: amunra am 25 September 2015, 18:08:14
das ist mMn suboptimal, weil das zu vielen Schreibvorgängen führt.

in diese Richtung hatte ich auch schon daran gedacht aber die Idee sofort wieder verworfen! Wie oft verstellt man diese Timer? Ich nehme an so an die 5-10 x maximal im Jahr! Wenn du auf einen einzigen Meßwert über dem eBus verzichtest (zB: die Außentemperatur) der alle 10 Minuten abgefragt wird, dann sparst du dir 52.560 Lesezugriffe pro Jahr! ( 6 * 24 * 365). Was spielt es da im Verhältnis für eine Rolle wenn nach jeder Eingabe einer programmierten Zeit gesendet wird? Meiner Meinung nach sollte da dem Komfort der Vorrang gegeben werden, denn wenn zusätzlich nach der Zeitprogrammierung eine Taste gedrückt werden muss vergisst man leicht darauf (ich zumindest)!

Aber es kann natürlich jeder das individuell nach seinem persönlichen Geschmack anpassen, das ist ja nur ein Test Muster damit nicht jeder das herunter tippen muss!

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

@Jojo11

Ich bin mir jetzt sicher, ob du das warst der schon einmal mit dem Konverter Hardware Probleme hatte. Aber du hast die Probleme ja auch beim Senden!

2015-09-25 15:59:46.391 [bus error] ERR: CRC error, retry
2015-09-25 15:59:46.993 [bus error] ERR: CRC error, retry
2015-09-25 15:59:47.590 [bus error] ERR: CRC error, retry
2015-09-25 15:59:48.098 [bus error] ERR: arbitration lost, retry
2015-09-25 15:59:48.371 [bus error] ERR: CRC error
2015-09-25 15:59:48.371 [main error] send message: ERR: CRC error


Meiner Meinung nach sind das Prüfsummenfehler der übertragenen Bytes am Bus (am Konverter, jeder Datensatz wird ja mit einer Prüfsumme versehen damit die Richtigkeit bestätigt wird), das kann uns John vermutlich genauer erklären. Wenn das so ist, dann kann die Ursache in der Hardware liegen. Schlechtes Kabel, Störungseinflüsse etc. Ich möchte jetzt den Teufel nicht an die Wand malen, aber für mich deutet alles darauf hin. Eigentlich ist das Kabel ja gegen Störeinflüsse relativ immun, da hier mit hohen Spannungspegeln gearbeitet wird und daher auch die Leitungslänge nicht so kritisch ist.

Ich habe jetzt eine Woche Logs untersucht, aber solche Fehler gibt es bei mir keinen einzigen und im Augenblick teste ich viel über den Bus.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Jojo11

#73
In der Tat wurde mein ebus-Koppler schon einmal ausgetauscht. Aber dass der gleiche Fehler bei zwei zu vollkommen unterschiedlichen Zeitpunkten hergestellten Geräten und dazu noch bei ein und demselben Kunden gleich zwei mal auftritt, halte ich für extrem unwahrscheinlich. Die Kabelverbindung oder der Rest (Raspberry, Stromversorgung, ...) könnten schon eher eine Ursache sein.
Auch scheine ich hier der Einzige zu sein, der eine Calormatic 470f benutzt. Zudem habe ich einen per Funk angebundenen DCF77 Aussensensor. Macht zwei Funkverbindungen, die auch nicht immer gut sind (eine geht durch eine Betondecke). Ich habe keine Ahnung, was so passieren kann, wenn der ebus richitg gut beschäftigt ist.
Leider bin ich noch nicht dazu gekommen, den Eigenbau-Adapter zusammenzulöten, sonst hätte ich einen direkten Vergleich.
Da ansonsten aber alles funktioniert und keinerlei falsche Messwerte entstehen, kann ich die Fehlermeldungen eigentlich verschmerzen. Nur die stetig anwachsende Anzahl an Readings bei meinem GAEBUS-Device nervt ein wenig. Aber vielleicht lösche ich die einfach alle paar Stunden mal mit

deletereading EBUS .*

;D

Und sonst hat hier niemand im ebusd-log ab und zu "bus-errors"?

schöne Grüße
Jo

Reinhart

@Jamesgo

Hallo Andy, habe jetzt den Fehler gefunden warum ich den String mit dem ";" nicht übergeben konnte. Habe einiges in der FHEM Doku gelesen und bin fündig geworden. Das Semikolon wird wie ein Sonderzeichen ala "@" oder "!" behandelt, also muss man den String "@@" oder "!!" oder ";;" übergeben!

hier nun das Log vom GAEBUS wenn ich richtig übergebe
2015.09.26 19:06:15 3: ebus1 execute w -c 470mc mcTTMonday 04:00;19:30;24:00;24:00;24:00;24:00;selected
2015.09.26 19:06:15 3: ebus1 answer w nMo done

und Schwubs sind die Feldtrenner drinnen

und so schaut jetzt die zugehörige Befehlszeile aus:
fhem "set ebus1 nMo " . ReadingsVal("TimeMo","HHMM1",0) . chr(59) . chr(59) . ReadingsVal("TimeMo","HHMM2",0) . chr(59)  . chr(59) . "24:00" . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "24:00" . chr(59) . chr(59) . "selected";;\

auch kann ich das Semikolon nicht direkt eingeben sondern so wie hier als Charakter. Diese Befehlszeile erzeugt obiges Log.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa