Autor Thema: Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)  (Gelesen 8093 mal)

Offline erwin

  • Full Member
  • ***
  • Beiträge: 349
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #15 am: 03 Juni 2016, 06:53:20 »
Hi Andi!
Schaut so aus als ob das encoding nicht funktioniert:
2016.06.03 06:17:05.646 5: enter set KNXtime: hash: HASH(0x174f290), attributes:  KNXtime, value, now
2016.06.03 06:17:05.646 5: set KNXtime: model: dpt10, GAD: 10/0/9, GAD hex: a009 , gno: 1
2016.06.03 06:17:05.647 5: check value: now, gno: 1
2016.06.03 06:17:05.648 5: check value: now, gno: 1, model: dpt10, pattern: (?^: ((2[0-4]|[0?1][0-9]):(60|[0?1-5]?[0-9]):(60|[0?1-5]?[0-9]))|([nN][oO][wW]))
2016.06.03 06:17:05.648 5: encode value: now, gno: 1
2016.06.03 06:17:05.649 5: encode model: dpt10, code: dpt10, value: now
2016.06.03 06:17:05.649 5: encode normalized value: now
2016.06.03 06:17:05.650 5: encode model: dpt10, code: dpt10, value: 166:17:5, numval: 21369093, hexval: 001461105
Ich hab so getestet:
ETS-GA_Monitor -> FHEM: funktioniert ok, richtige Werte!
FHEM -> GA-Monitor: (mit set KNXTIME now) : brint obigen log, FHEM terminiert ohne weiteren log-eintrag, es kommt nix am GA-Monitor an.
PS: mit EIB-Definition (model time) funktionierts in beide Richtungen einwandfrei!
l.g. & danke erwin
FHEM 5.7 auf RaspberryPI mit Busware ROT
CUNO2 V 1.44 CUNO868 SLOWRF - HMS100xx, FS20, FHT
1-Wire über ROT - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,...
MQTT-DEVICES, KNX - EIBD

Offline Alveole

  • Full Member
  • ***
  • Beiträge: 130
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #16 am: 03 Juni 2016, 09:56:20 »
Hallo,
mein verbose-5 log sagt folgendes:

Zitat
2016.06.03 04:00:00 5: exec at command timeset
2016.06.03 04:00:00 5: Cmd: >set timedev value now<
2016.06.03 04:00:00 5: enter set timedev: hash: HASH(0x1bee230), attributes: timedev, value, value, now
2016.06.03 04:00:00 5: set timedev: model: dpt10, GAD: 1/1/0, GAD hex: 1100, gno: 1
2016.06.03 04:00:00 5: check value: value, gno: 1
2016.06.03 04:00:00 3: timeset: invalid value: value
2016.06.03 04:00:00 5: redefine at command timeset as *04:00:00 set timedev value now

2016.06.03 04:05:00 5: exec at command dateset
2016.06.03 04:05:00 5: Cmd: >set datedev value now<
2016.06.03 04:05:00 5: enter set datedev: hash: HASH(0x1bee1d0), attributes: datedev, value, value, now
2016.06.03 04:05:00 5: set datedev: model: dpt11, GAD: 1/1/1, GAD hex: 1101, gno: 1
2016.06.03 04:05:00 5: check value: value, gno: 1
2016.06.03 04:05:00 3: dateset: invalid value: value
2016.06.03 04:05:00 5: redefine at command dateset as *04:05:00 set datedev value now

der aus folgenden Quellcode resultiert

define timedev KNX 1/1/0:dpt10
attr timedev IODev EIB
attr timedev eventMap /value now:now/
attr timedev webCmd now

define datedev KNX 1/1/1:dpt11
attr datedev IODev EIB
attr datedev eventMap /value now:now/
attr datedev webCmd now

define dateset at *04:05:00 set datedev value now

define timeset at *04:00:00 set timedev value now

das komische ist, wenn ich das senden des Wertes manuell auslöse (auf "now" clicke) und schaue was in der ETS mitgelesen wird kommt das richtige Datum, aber immer als Wochentag Samstag.
« Letzte Änderung: 03 Juni 2016, 09:59:23 von Alveole »

Offline erwin

  • Full Member
  • ***
  • Beiträge: 349
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #17 am: 03 Juni 2016, 14:13:53 »
Hi Andi,

Problem gefunden: die zeile 1079 soll so lauten:
#                       $numval = $secs + ($mins<<8) + (($hoffset + $hours)<<16);
                       $numval = $secs + ($mins<<8) + ($hours<<16);
...derzeit wird der Tag 2* addiert....
l.g. erwin
FHEM 5.7 auf RaspberryPI mit Busware ROT
CUNO2 V 1.44 CUNO868 SLOWRF - HMS100xx, FS20, FHT
1-Wire über ROT - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,...
MQTT-DEVICES, KNX - EIBD

Offline Andi291

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 853
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #18 am: 03 Juni 2016, 19:32:30 »
Servus!

Ich schau mal drauf - hoffe, ich schaffe es am Sonntag...

Grüße, Andi

Offline setstate

  • Hero Member
  • *****
  • Beiträge: 3119
  • FHEM TabletUI
    • FHEM Tablet UI
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #19 am: 04 Juni 2016, 11:54:18 »
Was mache ich hier falsch?

2016.06.04 11:48:39 5: exec at command timeset
2016.06.04 11:48:39 5: Cmd: >set timedev value now<
2016.06.04 11:48:39 5: enter set timedev: hash: HASH(0x34241e0), attributes: timedev, value, value, now
2016.06.04 11:48:39 5: set timedev: model: dpt10, GAD: 0/0/7, GAD hex: 0007, gno: 1
2016.06.04 11:48:39 5: check value: value, gno: 1
2016.06.04 11:48:39 3: timeset: invalid value: value

Definition sieht so aus (laut Commendref)

Zitat
###  KNX  ###
define tul TUL eibd:localhost 1.1.255
attr tul room System
attr tul useEIB 1
define timedev KNX 0/0/7:dpt10
attr timedev IODev tul
attr timedev eventMap /value now:now/
attr timedev webCmd now
     
define datedev KNX 0/0/8:dpt1
attr datedev IODev tul
attr datedev eventMap /value now:now/
attr datedev webCmd now
     
# send every midnight the new date
#define dateset at *00:00:00 set datedev value now
     
# send every hour the current time
#define timeset at +*01:00:00 set timedev value now

Mit Fixwert klappt es:

2016.06.04 11:43:55 5: Cmd: >set timedev value 12:13:14<
2016.06.04 11:43:55 5: enter set timedev: hash: HASH(0x34241e0), attributes: timedev, value, 12:13:14
2016.06.04 11:43:55 5: set timedev: model: dpt10, GAD: 0/0/7, GAD hex: 0007, gno: 1
2016.06.04 11:43:55 5: check value: 12:13:14, gno: 1
2016.06.04 11:43:55 5: check value: 12:13:14, gno: 1, model: dpt10, pattern: (?^:((2[0-4]|[0?1][0-9]):(60|[0?1-5]?[0-9]):(60|[0?1-5]?[0-9]))|([nN][oO][wW]))
2016.06.04 11:43:55 5: encode value: 12:13:14, gno: 1
2016.06.04 11:43:55 5: encode model: dpt10, code: dpt10, value: 12:13:14
2016.06.04 11:43:55 5: encode normalized value: 12:13:14
2016.06.04 11:43:55 5: encode model: dpt10, code: dpt10, value: 12:13:14, numval: 789774, hexval: 000c0d0e
2016.06.04 11:43:55 5: sending Cw0007000c0d0e
2016.06.04 11:43:55 5: encode_eibd dst: 0007 apci: 2 datalen: 4 data: 0 12 13 14
2016.06.04 11:43:55 5: SendGroup: dst: 0007, msg: 7 0 128 12 13 14

2016.06.04 11:43:55 5: sendRequest: 0027000700800c0d0e

2016.06.04 11:43:55 5: set timedev: cmd: value, value: 12:13:14, translated: 000c0d0e
2016.06.04 11:43:55 5: decode value: 000c0d0e, gno: 1
2016.06.04 11:43:55 5: decode model: dpt10, code: dpt10, value: 000c0d0e
2016.06.04 11:43:55 5: decode model: dpt10, code: dpt10, value: 000c0d0e, numval: 789774, state: 12:13:14

Wenn ich webCmd drücke, hängt sich FHEM kpl. auf. Dann muss ich auf mein RestartScript warten. Im Log sieht man keinen Fehler, nur den Neustart (12:00 - 12:05)

2016.06.04 12:00:44 4: WEB_192.168.178.58_58341 GET /fhem?detail=timedev&cmd.timedev=set%20timedev%20now; BUFLEN:0
2016.06.04 12:00:44 5: Cmd: >set timedev now<
2016.06.04 12:00:44 5: enter set timedev: hash: HASH(0x34241e0), attributes: timedev, value, now
2016.06.04 12:00:44 5: set timedev: model: dpt10, GAD: 0/0/7, GAD hex: 0007, gno: 1
2016.06.04 12:00:44 5: check value: now, gno: 1
2016.06.04 12:00:44 5: check value: now, gno: 1, model: dpt10, pattern: (?^:((2[0-4]|[0?1][0-9]):(60|[0?1-5]?[0-9]):(60|[0?1-5]?[0-9]))|([nN][oO][wW]))
2016.06.04 12:00:44 5: encode value: now, gno: 1
2016.06.04 12:00:44 5: encode model: dpt10, code: dpt10, value: now
2016.06.04 12:00:44 5: encode normalized value: now
2016.06.04 12:00:44 5: encode model: dpt10, code: dpt10, value: 204:0:44, numval: 25952300, hexval: 0018c002c
2016.06.04 12:00:44 5: sending Cw00070018c002c
2016.06.04 12:05:05 5: Initializing Type Library:
2016.06.04 12:05:05 1: Including /opt/fhem/fhem.cfg

value: 204:0:44
anstatt 12:00:44 wird die Ursache sein ...

Übrigens, beim datedev gibt es keine Probleme
« Letzte Änderung: 04 Juni 2016, 12:51:42 von setstate »

Offline setstate

  • Hero Member
  • *****
  • Beiträge: 3119
  • FHEM TabletUI
    • FHEM Tablet UI
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #20 am: 05 Juni 2016, 12:58:02 »
ich gehe jetzt mal davon aus, dass das ein Fehler im 10_KNX ist und hoffe auf einen baldigen Fix.

Oder steht das in der KNX Spec (habe ich nicht gelesen), dass in die Uhrzeit der Wochentag als Offset eingeht? Oder ist das eher ein copy&paste Fehler?

#add offsets
$year+=1900;
$mon++;
# calculate offset for weekday
$wday = 7 if ($wday eq "0");
$hoffset = 32*$wday;
$hours += $hoffset;

Offline Andi291

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 853
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #21 am: 05 Juni 2016, 20:47:44 »
Geprüft, geändert und nochmal geprüft.

Wird die nächsten 15min eingechecked.

Und ja: den Offset brauchts wegen der Unix-Time. Aber halt nur einmal - und keine zwei mal :-)

Grüße, Andi

Offline setstate

  • Hero Member
  • *****
  • Beiträge: 3119
  • FHEM TabletUI
    • FHEM Tablet UI
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #22 am: 11 Juni 2016, 16:23:58 »
Danke fürs Anpassen, jetzt hängt sich FHEM nicht mehr auf.

Aber ich bekomme noch das bei diesem Befehl im FHEMWEB
set timedev value now
Ergebnis:
Zitat
invalid value: value

Und damit funktioniert das Beispiel aus dem Commandref nicht:

Zitat
     
      # send every midnight the new date
      define dateset at *00:00:00 set datedev value now
     
      # send every hour the current time
      define timeset at +*01:00:00 set timedev value now

Muss das nicht so heißen? So geht es ...

define timeset at +*01:00:00 set timedev now

Offline Andi291

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 853
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #23 am: 11 Juni 2016, 18:53:07 »
Korrekt. Danke!

Offline Andi291

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 853
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #24 am: 13 Juni 2016, 19:56:47 »
Hatte ich neulich aber bereits in der comandref angepasst. Kriegst Du das noch nicht angezeigt?

Offline Falki

  • New Member
  • *
  • Beiträge: 18
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #25 am: 04 Januar 2017, 20:07:34 »
Hallo Andi,

kannst du bitte die genannte Änderung (Wegfall von value) in der Commandref einpflegen? Das hilft sich noch dem einen oder anderen weiter.

Ich sehe unter http://fhem.de/commandref.html#KNX immer noch die Eib-Version. Danke.

Grüße
Falki
KNX + Cubietruck + FHEM

Offline Andi291

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 853
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #26 am: 04 Januar 2017, 20:18:27 »
Jup. Kommt in die nächste Version. Warum auch immer ich das noch nicht gemacht habe...

Offline Andi291

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 853
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #27 am: 08 Januar 2017, 17:55:06 »
...erledigt und eingechecked...

Offline lichtimc

  • New Member
  • *
  • Beiträge: 11
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #28 am: 26 Januar 2017, 15:24:40 »
Hey Andi,

zur Info: das "attr timedev eventMap /value now:now/" fehlt noch in der Commandref... hab mich gerade gewundert, wieso der Befehlt nicht funktioniert hat...

lg, LichtiMC

Offline Syon

  • New Member
  • *
  • Beiträge: 48
Antw:Uhrzeit mittels Fhem auf den KNX-Bus senden ? (Zeitgeber)
« Antwort #29 am: 22 Juni 2017, 11:50:33 »
Hallo, ich hänge mich hier mich mal an.

Mit meiner fhem.cfg schreibt er statt des Datums die Werte mittels Zeit Formatierung...
efine timedev KNX 6/1/1:dpt10
attr timedev IODev KNX
attr timedev eventMap /value now:now/
attr timedev webCmd now

define datedev KNX 6/1/2:dpt11
attr datedev IODev KNX
attr datedev eventMap /value now:now/
attr datedev webCmd now


# send every midnight the new date
define dateset at *00:00:00 set datedev now

# send every hour the current time
define timeset at +*01:00:00 set timedev now

In der ETS kommt dann sowas wie im Bild.

 

decade-submarginal