Modul weekprofile + FHEMWEB widget

Begonnen von Risiko, 23 Dezember 2015, 20:16:54

Vorheriges Thema - Nächstes Thema

Rewe2000

#390
Hallo Risiko,

mit der neuesten Version von weekprofile 15778 stürzt mir Fhem zumindest nicht mehr koplett ab. Das Device weekprofile ist jetzt in fhem zu finden, aber wenn ich den Raum Unsortet betrete, in welchen sich das Device jetzt noch befindet, bekomme ich auf der Fhem Oberfläche folgende Fehlermeldung angezeigt:
test Parameter SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
Diese Meldung wird im log bei Verbose 2 und 4 jedoch nicht angezeigt.

Klicke ich auf das Device (Zahnrad) kommt folgende Meldung:
fhemweb_weekprofile.js line 551: TypeError: widget.PROFILE is undefined

So wie es mir vorkommt, fehlt hier das Default Profil für das Device, dieses sollte ja eigentlich bei dieser Art der Installation automatisch angelegt werden.

Angelegt habe ich das Device wie folgt:
define test weekprofile

Ich habe Fhem vor einigen Wochen komplett neu auf ein neues Debian Strech Lite (Raspi3), mit der in der WIKI vorgeschlagenen Vorgehensweise https://wiki.fhem.de/wiki/Raspberry_Pi installiert.

Folgende Module habe ich auf meinem Raspi derzeit installiert. Ich kann jedoch auf den ersten Blick nicht erkennen, was da noch fehlen sollte.
libacme-damn-perl                   0.08-1                       armhf
libalgorithm-c3-perl                0.10-1                       all
libalgorithm-diff-perl              1.19.03-1                    all
libalgorithm-diff-xs-perl           0.04-4+b2                    armhf
libalgorithm-merge-perl             0.08-3                       all
libauthen-sasl-perl                 2.1600-1                     all
libb-hooks-endofscope-perl          0.21-1                       all
libcgi-fast-perl                    1:2.12-1                     all
libcgi-pm-perl                      4.35-1                       all
libclass-accessor-perl              0.34-1                       all
libclass-c3-perl                    0.32-1                       all
libclass-c3-xs-perl                 0.14-1+b1                    armhf
libclass-data-inheritable-perl      0.08-2                       all
libclass-dbi-abstractsearch-perl    0.07-3                       all
libclass-dbi-mysql-perl             1.00-3                       all
libclass-dbi-perl                   3.0.17-4                     all
libclass-factory-util-perl          1.7-3                        all
libclass-method-modifiers-perl      2.12-1                       all
libclass-singleton-perl             1.5-1                        all
libclass-trigger-perl               0.14-1                       all
libclass-xsaccessor-perl            1.19-2+b13                   armhf
libclone-perl                       0.38-2+b1                    armhf
libcommon-sense-perl                3.74-2                       armhf
libdata-optlist-perl                0.110-1                      all
libdatetime-format-builder-perl     0.8100-1                     all
libdatetime-format-iso8601-perl     0.08-2                       all
libdatetime-format-strptime-perl    1.7200-1                     all
libdatetime-locale-perl             1:1.11-1                     all
libdatetime-perl                    2:1.42-1                     armhf
libdatetime-timezone-perl           1:2.09-1+2017c               all
libdbd-mysql-perl                   4.041-2                      armhf
libdbd-sqlite3-perl                 1.54-1                       armhf
libdbi-perl                         1.636-1+b1                   armhf
libdbix-contextualfetch-perl        1.03-3                       all
libdevel-caller-perl                2.06-1+b4                    armhf
libdevel-globaldestruction-perl     0.14-1                       all
libdevel-lexalias-perl              0.05-1+b4                    armhf
libdevel-stacktrace-perl            2.0200-1                     all
libdevice-serialport-perl           1.04-3+b3                    armhf
libdigest-hmac-perl                 1.03+dfsg-1                  all
libdpkg-perl                        1.18.24                      all
libencode-locale-perl               1.05-1                       all
libeval-closure-perl                0.14-1                       all
libexception-class-perl             1.42-1                       all
libexporter-tiny-perl               0.042-1                      all
libfcgi-perl                        0.78-2                       armhf
libfile-fcntllock-perl              0.22-3+b2                    armhf
libfile-listing-perl                6.04-1                       all
libfont-afm-perl                    1.20-2                       all
libforks-perl                       0.36-2+b2                    armhf
libgd-graph-perl                    1.48-2                       all
libgd-perl                          2.53-3+b1                    armhf
libgd-text-perl                     0.86-9                       all
libhash-merge-perl                  0.200-1                      all
libhtml-form-perl                   6.03-1                       all
libhtml-format-perl                 2.12-1                       all
libhtml-parser-perl                 3.72-3                       armhf
libhtml-tagset-perl                 3.20-3                       all
libhtml-template-perl               2.95-2                       all
libhtml-tree-perl                   5.03-2                       all
libhttp-cookies-perl                6.01-1                       all
libhttp-daemon-perl                 6.01-1                       all
libhttp-date-perl                   6.02-1                       all
libhttp-message-perl                6.11-1                       all
libhttp-negotiate-perl              6.00-2                       all
libima-dbi-perl                     0.35-2                       all
libimage-base-bundle-perl           1.0.7-3.2                    all
libimage-info-perl                  1.39-1                       all
libimage-librsvg-perl               0.07-8+b3                    armhf
libimport-into-perl                 1.002005-1                   all
libio-html-perl                     1.001-1                      all
libio-multiplex-perl                1.16-1                       all
libio-socket-inet6-perl             2.72-2                       all
libio-socket-ssl-perl               2.044-1                      all
libio-string-perl                   1.08-3                       all
libio-stringy-perl                  2.111-2                      all
libjson-perl                        2.90-1                       all
libjson-pp-perl                     2.27400-1                    all
libjson-xs-perl                     3.030-1                      armhf
liblingua-en-inflect-perl           1.901-1                      all
liblist-moreutils-perl              0.416-1+b1                   armhf
liblocale-gettext-perl              1.07-3+b1                    armhf
liblwp-mediatypes-perl              6.02-1                       all
liblwp-protocol-https-perl          6.06-2                       all
libmail-imapclient-perl             3.38-1                       all
libmailtools-perl                   2.18-1                       all
libmodule-implementation-perl       0.09-1                       all
libmodule-runtime-perl              0.014-2                      all
libmoo-perl                         2.002005-1                   all
libmro-compat-perl                  0.12-1                       all
libnamespace-autoclean-perl         0.28-1                       all
libnamespace-clean-perl             0.27-1                       all
libnet-cidr-perl                    0.18-1                       all
libnet-dns-perl                     1.07-1                       all
libnet-http-perl                    6.12-1                       all
libnet-ip-perl                      1.26-1                       all
libnet-server-perl                  2.008-3                      all
libnet-sip-perl                     0.808-1                      all
libnet-smtp-ssl-perl                1.04-1                       all
libnet-ssleay-perl                  1.80-1                       armhf
libpackage-deprecationmanager-perl  0.17-1                       all
libpackage-stash-perl               0.37-1                       all
libpackage-stash-xs-perl            0.28-3+b1                    armhf
libpadwalker-perl                   2.2-2+b1                     armhf
libparams-classify-perl             0.013-6+b1                   armhf
libparams-util-perl                 1.07-3+b1                    armhf
libparams-validate-perl             1.26-1                       armhf
libparams-validationcompiler-perl   0.23-1                       all
libparse-recdescent-perl            1.967013+dfsg-1              all
librole-tiny-perl                   2.000005-1                   all
librpc-xml-perl                     0.80-1                       all
libscalar-list-utils-perl           1:1.47-1                     armhf
libsocket6-perl                     0.27-1+b1                    armhf
libspecio-perl                      0.33-1                       all
libsql-abstract-limit-perl          2:0.14.1-5                   all
libsql-abstract-perl                1.81-1                       all
libstrictures-perl                  2.000003-1                   all
libsub-exporter-perl                0.986-1                      all
libsub-exporter-progressive-perl    0.001013-1                   all
libsub-identify-perl                0.12-2+b1                    armhf
libsub-install-perl                 0.928-1                      all
libsub-name-perl                    0.21-1                       armhf
libsys-sigaction-perl               0.23-1                       all
libterm-readkey-perl                2.37-1                       armhf
libtest-fatal-perl                  0.014-1                      all
libtext-charwidth-perl              0.04-7+b7                    armhf
libtext-csv-perl                    1.33-2                       all
libtext-csv-xs-perl                 1.26-1                       armhf
libtext-diff-perl                   1.44-1                       all
libtext-iconv-perl                  1.7-5+b8                     armhf
libtext-wrapi18n-perl               0.06-7.1                     all
libthread-queue-any-perl            1.14-1                       all
libtime-piece-mysql-perl            0.06-2                       all
libtimedate-perl                    2.3000-2                     all
libtry-tiny-perl                    0.28-1                       all
libtypes-serialiser-perl            1.0-1                        all
libuniversal-moniker-perl           0.08-7                       all
liburi-perl                         1.71-1                       all
libvariable-magic-perl              0.61-1                       armhf
libwww-perl                         6.15-1                       all
libwww-robotrules-perl              6.01-1                       all
libxml-libxml-perl                  2.0128+dfsg-1+deb9u1         armhf
libxml-namespacesupport-perl        1.11-1                       all
libxml-parser-perl                  2.44-2+b1                    armhf
libxml-sax-base-perl                1.07-1                       all
libxml-sax-expat-perl               0.40-2                       all
libxml-sax-perl                     0.99+dfsg-2                  all
libxml-simple-perl                  2.22-1                       all


Setze ich verbose auf 4, erhalte ich folgende Meldungen im Log:

2018.01.05 15:07:32 4: WEB: /fhem?cmd.attrglobal%3Dattr%20global%20verbose%204&XHR=1&fwcsrf=csrf_163170332821252&fw_id=500 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:07:35 4: Connection closed for WEB_192.168.1.26_51434: EOF
2018.01.05 15:07:35 4: WEB_192.168.1.26_51429 GET /fhem?room=Unsorted; BUFLEN:0
2018.01.05 15:07:35 4: Ignoring unknown_1586C2
...........
2018.01.05 15:07:35 4: Ignoring unknown_1D4EE7
2018.01.05 15:07:35 4: WEB: /fhem?room=Unsorted / RL:4204 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:07:35 4: WEB_192.168.1.26_51429 GET /fhem?cmd=get%20test%20profile_data%20default%3Adefault&XHR=1&fwcsrf=csrf_163170332821252; BUFLEN:0
2018.01.05 15:07:35 1: test(Get): invalid profile data - set verbose to 4 to see the data
2018.01.05 15:07:35 4: WEB: /fhem?cmd=get%20test%20profile_data%20default%3Adefault&XHR=1&fwcsrf=csrf_163170332821252 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:07:35 4: Connection accepted from WEB_192.168.1.26_51436
2018.01.05 15:07:35 4: WEB_192.168.1.26_51433 POST /fhem?cmd={AttrVal(%22test%22,%22widgetWeekdays%22,%22%22)}&XHR=1&fwcsrf=csrf_163170332821252&fw_id=494; BUFLEN:0
2018.01.05 15:07:35 4: WEB: /fhem?cmd={AttrVal(%22test%22,%22widgetWeekdays%22,%22%22)}&XHR=1&fwcsrf=csrf_163170332821252&fw_id=494 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:07:35 4: WEB_192.168.1.26_51436 POST /fhem?cmd={AttrVal(%22test%22,%22widgetTranslations%22,%22%22)}&XHR=1&fwcsrf=csrf_163170332821252&fw_id=494; BUFLEN:0
2018.01.05 15:07:35 4: WEB: /fhem?cmd={AttrVal(%22test%22,%22widgetTranslations%22,%22%22)}&XHR=1&fwcsrf=csrf_163170332821252&fw_id=494 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:07:35 4: Connection accepted from WEB_192.168.1.26_51437
2018.01.05 15:07:35 4: WEB_192.168.1.26_51437 POST /fhem?cmd=get%20test%20profile_names%20default&XHR=1&fwcsrf=csrf_163170332821252&fw_id=494; BUFLEN:0
2018.01.05 15:07:35 4: WEB: /fhem?cmd=get%20test%20profile_names%20default&XHR=1&fwcsrf=csrf_163170332821252&fw_id=494 / RL:28 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:07:35 4: WEB_192.168.1.26_51429 GET /fhem?cmd=get%20test%20profile_data%20default%3Adefault&XHR=1&fwcsrf=csrf_163170332821252; BUFLEN:0
2018.01.05 15:07:35 1: test(Get): invalid profile data - set verbose to 4 to see the data
2018.01.05 15:07:35 4: WEB: /fhem?cmd=get%20test%20profile_data%20default%3Adefault&XHR=1&fwcsrf=csrf_163170332821252 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:07:35 4: WEB_192.168.1.26_51429 GET /fhem?XHR=1&inform=type=status;filter=room=Unsorted;since=1515161254;fmt=JSON&fw_id=494×tamp=1515161257417; BUFLEN:0
2018.01.05 15:07:39 4: Connection closed for WEB_192.168.1.26_51429: EOF
2018.01.05 15:07:39 4: WEB_192.168.1.26_51437 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2018-01.log; BUFLEN:0
2018.01.05 15:07:39 4: WEB_192.168.1.26_51437 GET /fhem/FileLog_logWrapper?XHR=1&inform=type=status;filter=;since=1515161258;fmt=JSON&fw_id=503×tamp=1515161261020; BUFLEN:0
2018.01.05 15:07:55 4: BlockingCall (DbLog_PushAsync): created child (21742), uses telnetForBlockingFn_1515154557.89901 to connect back
2018.01.05 15:07:55 4: Connection accepted from telnetForBlockingFn_1515154557.89901_127.0.0.1_39100
2018.01.05 15:08:47 4: Closing inactive connection WEB_192.168.1.26_51436
2018.01.05 15:08:47 4: Closing inactive connection WEB_192.168.1.26_51433
2018.01.05 15:08:54 4: Connection closed for WEB_192.168.1.26_51437: EOF
2018.01.05 15:08:55 4: Connection accepted from WEB_192.168.1.26_51444
2018.01.05 15:08:55 4: WEB_192.168.1.26_51444 GET /fhem?room=Unsorted; BUFLEN:0
2018.01.05 15:08:55 4: WEB: /fhem?room=Unsorted / RL:4204 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:08:55 4: WEB_192.168.1.26_51444 GET /fhem?cmd=get%20test%20profile_data%20default%3Adefault&XHR=1&fwcsrf=csrf_163170332821252; BUFLEN:0
2018.01.05 15:08:55 1: test(Get): invalid profile data - set verbose to 4 to see the data
2018.01.05 15:08:55 4: WEB: /fhem?cmd=get%20test%20profile_data%20default%3Adefault&XHR=1&fwcsrf=csrf_163170332821252 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:08:55 4: Connection accepted from WEB_192.168.1.26_51445
2018.01.05 15:08:55 4: Connection accepted from WEB_192.168.1.26_51446
2018.01.05 15:08:55 4: WEB_192.168.1.26_51445 POST /fhem?cmd={AttrVal(%22test%22,%22widgetWeekdays%22,%22%22)}&XHR=1&fwcsrf=csrf_163170332821252&fw_id=505; BUFLEN:0
2018.01.05 15:08:55 4: WEB: /fhem?cmd={AttrVal(%22test%22,%22widgetWeekdays%22,%22%22)}&XHR=1&fwcsrf=csrf_163170332821252&fw_id=505 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:08:55 4: Connection accepted from WEB_192.168.1.26_51447
2018.01.05 15:08:55 4: WEB_192.168.1.26_51446 POST /fhem?cmd={AttrVal(%22test%22,%22widgetTranslations%22,%22%22)}&XHR=1&fwcsrf=csrf_163170332821252&fw_id=505; BUFLEN:0
2018.01.05 15:08:55 4: WEB: /fhem?cmd={AttrVal(%22test%22,%22widgetTranslations%22,%22%22)}&XHR=1&fwcsrf=csrf_163170332821252&fw_id=505 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:08:55 4: WEB_192.168.1.26_51447 POST /fhem?cmd=get%20test%20profile_names%20default&XHR=1&fwcsrf=csrf_163170332821252&fw_id=505; BUFLEN:0
2018.01.05 15:08:55 4: WEB: /fhem?cmd=get%20test%20profile_names%20default&XHR=1&fwcsrf=csrf_163170332821252&fw_id=505 / RL:28 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:08:55 4: WEB_192.168.1.26_51444 GET /fhem?cmd=get%20test%20profile_data%20default%3Adefault&XHR=1&fwcsrf=csrf_163170332821252; BUFLEN:0
2018.01.05 15:08:55 1: test(Get): invalid profile data - set verbose to 4 to see the data
2018.01.05 15:08:55 4: WEB: /fhem?cmd=get%20test%20profile_data%20default%3Adefault&XHR=1&fwcsrf=csrf_163170332821252 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:08:55 4: WEB_192.168.1.26_51444 GET /fhem?XHR=1&inform=type=status;filter=room=Unsorted;since=1515161334;fmt=JSON&fw_id=505×tamp=1515161336718; BUFLEN:0
2018.01.05 15:08:55 4: BlockingCall (DbLog_PushAsync): created child (21777), uses telnetForBlockingFn_1515154557.89901 to connect back
2018.01.05 15:08:55 4: Connection accepted from telnetForBlockingFn_1515154557.89901_127.0.0.1_39102
2018.01.05 15:09:04 4: Connection closed for WEB_192.168.1.26_51444: EOF
2018.01.05 15:09:04 4: WEB_192.168.1.26_51447 GET /fhem?detail=global; BUFLEN:0
2018.01.05 15:09:04 4: WEB: /fhem?detail=global / RL:4247 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:09:04 4: WEB_192.168.1.26_51447 GET /fhem?cmd=%7BAttrVal(%22global%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=csrf_163170332821252; BUFLEN:0
2018.01.05 15:09:04 4: WEB: /fhem?cmd=%7BAttrVal(%22global%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=csrf_163170332821252 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:09:04 4: WEB_192.168.1.26_51447 GET /fhem?XHR=1&inform=type=status;filter=global;since=1515161343;fmt=JSON&fw_id=508×tamp=1515161346227; BUFLEN:0
2018.01.05 15:09:07 4: WEB_192.168.1.26_51445 GET /fhem?cmd=%7BAttrVal(%22global%22%2C%22verbose%22%2C%22%22)%7D&XHR=1&fwcsrf=csrf_163170332821252; BUFLEN:0
2018.01.05 15:09:07 4: WEB: /fhem?cmd=%7BAttrVal(%22global%22%2C%22verbose%22%2C%22%22)%7D&XHR=1&fwcsrf=csrf_163170332821252 / RL:22 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.01.05 15:09:11 4: Ignoring HM_4DC29E
........
2018.01.05 15:09:11 4: Ignoring unknown_B71B36
2018.01.05 15:09:11 4: no_DbLogExclude exec attr $EVTPART1 DbLogExclude .*
2018.01.05 15:09:11 4: test(getDeviceType): du_Sonnenaufgang is not supported
.........
2018.01.05 15:09:11 4: test(getDeviceType): HM_EG_TKE1_Wohnzimmer is not supported
2018.01.05 15:09:14 4: WEB_192.168.1.26_51445 POST /fhem?cmd.attrglobal%3Dattr%20global%20verbose%202&XHR=1&fwcsrf=csrf_163170332821252&fw_id=508; BUFLEN:0


Die Meldungen habe ich versucht zu bereinigen, damit die Datenmenge nicht zu viel wird.

Hinweis:
Ich habe nur HmIP Device in Fhem (über CCU2) angemeldet, welche überhaupt Wochenprogramme unterstützen. Es sind keinerlei HM-Device (ohne IP) in Fhem (über CCU2 oder CUL) vorhanden.
Kann dies der Grund für das Verhalten sein?


Ich habe selbst keine Vermutung was es sein könnte, aber leider nicht so viel Ahnung den Fehler selbst zu finden.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Risiko

#391
Hallo Rewe2000,

du solltest nur verbose vom device "test" aus 4 (besser gleich mal auf 5) setzen  ;) - Bitte mal nachholen.
Ja es sieht so aus, als wenn kein Default-Profile angelegt bzw. gespeichert wird. Fehlen evtl. Schreibrechte im Log-Verzeichnis?
Bis jetzt habe ich es leider noch nicht geschafft diesen Fall nachzustellen.

Rewe2000

Hallo Risiko,

so weit bin ich gar nicht gekommen, das Device test war unter Unsorted nur als Symbol (Zahnräder) und Devicename sichtbar, ein klick darauf brachte folgende Meldung:
ZitatKlicke ich auf das Device (Zahnrad) kommt folgende Meldung:
Code: [Auswählen]
fhemweb_weekprofile.js line 551: TypeError: widget.PROFILE is undefined

So wie es mir vorkommt, fehlt hier das Default Profil für das Device, dieses sollte ja eigentlich bei dieser Art der Installation automatisch angelegt werden.

Somit blieb mir "nur" das Verbose 4 in global.

Heute war jedoch das Device sofort nach dem Anlegen sichtbar und ich konnte hier Verbose 5 setzen.
Der Datenmenge wegen habe ich nahezu gleiche Einträge mit ...... gelöscht.
2018.01.06 13:05:30 1: Perfmon: possible freeze starting at 13:05:28, delay is 2.527
2018.01.06 13:18:25 1: test(Get): invalid profile data - set verbose to 4 to see the data
2018.01.06 13:18:25 1: test(Get): invalid profile data - set verbose to 4 to see the data
2018.01.06 13:18:55 1: test(Get): invalid profile data - set verbose to 4 to see the data
2018.01.06 13:18:55 1: test(Get): invalid profile data - set verbose to 4 to see the data
2018.01.06 13:19:15 4: test(Get): invalid profile data $VAR1 = {
          'Thu' => {
                     'temp' => [
                                 '18.0'
                               ],
                     'time' => [
                                 '24:00'
                               ]
                   },
.......
          'Wed' => {
                     'temp' => [
                                 '18.0'
                               ],
                     'time' => [
                                 '24:00'
                               ]
                   }
        };
2018.01.06 13:19:15 4: test(Get): invalid profile data $VAR1 = {
          'Thu' => {
                     'temp' => [
                                 '18.0'
                               ],
                     'time' => [
                                 '24:00'
                               ]
                   },
......
          'Wed' => {
                     'temp' => [
                                 '18.0'
                               ],
                     'time' => [
                                 '24:00'
                               ]
                   }
        };
2018.01.06 13:19:30 4: test(Get): invalid profile data $VAR1 = {
          'Thu' => {
                     'temp' => [
                                 '18.0'
                               ],
                     'time' => [
                                 '24:00'
                               ]
                   },
......
          'Wed' => {
                     'temp' => [
                                 '18.0'
                               ],
                     'time' => [
                                 '24:00'
                               ]
                   }
        };
2018.01.06 13:19:30 4: test(Get): invalid profile data $VAR1 = {
          'Thu' => {
                     'temp' => [
                                 '18.0'
                               ],
                     'time' => [
                                 '24:00'
                               ]
                   },
......
          'Wed' => {
                     'temp' => [
                                 '18.0'
                               ],
                     'time' => [
                                 '24:00'
                               ]
                   }
        };
2018.01.06 13:21:48 0: Server shutdown


Das Device war aber nur dieses einzige Mal mit der Devicemaske sichtbar, jeder weitere klick darauf brachte wieder den o.g. Fehler.

Die Schreibrechte im Log-Verzeichnis sollten eigentlich passen, ich habe diese global für Fhem nochmals mit folgenden Befehlen neu gesetzt.
"sudo usermod -a -G tty pi"
"sudo usermod -a -G tty fhem"
"cd /opt"
"sudo chmod -R a+w fhem"
"sudo addgroup fhem dialout"
"sudo addgroup fhem audio"
"sudo chown -R fhem:dialout /opt/fhem"


Bitte prüfe ob hier noch etwas fehlt, ich denke aber es sollte so passen.

pi@raspberrypi:/opt/fhem $ ls -ls
insgesamt 704
  4 drwxrwxrwx  2 fhem dialout   4096 Jan  6 03:11 backup
  4 drwxrwxrwx  2 fhem dialout   4096 Dez  7 20:08 cache
  4 drwx-wx-wx  2 fhem dialout   4096 Dez 29  2016 certs
224 -rw-rw-rw-  1 fhem dialout 226531 Jan  5 13:13 CHANGED
40 -rw-rw-rw-  1 fhem dialout  39189 Sep 20 19:36 configDB.pm
  4 drwxrwxrwx 40 fhem dialout   4096 Dez 29  2016 contrib
  4 drwxrwxrwx  3 fhem dialout   4096 Dez 29  2016 demolog
  4 drwxrwxrwx  4 fhem dialout   4096 Jun 30  2017 docs
32 drwxrwxrwx  6 fhem dialout  28672 Dez 25 19:58 FHEM
168 -rw-rw-rw-  1 fhem dialout 171903 Jan  3 13:14 fhem.cfg
16 -rw-rw-rw-  1 fhem dialout  15740 Okt 14 21:49 fhem.cfg.demo
140 -rw-rw-rw-  1 fhem dialout 142055 Jan  5 13:13 fhem.pl
  4 drwxrwxrwx  2 fhem dialout   4096 Jan  1 00:00 log
36 -rw-rw-rw-  1 fhem dialout  36221 Jan  5 13:13 MAINTAINER.txt
  4 -rw-rw-rw-  1 fhem dialout    935 Dez 29  2016 README_DEMO.txt
  4 drwxrwxrwx  5 fhem dialout   4096 Jan  5 13:13 restoreDir
  4 drwxrwxrwx  2 fhem dialout   4096 Jan  3 13:13 temp
  4 drwxrwxrwx  2 fhem dialout   4096 Dez 29  2016 unused
  4 drwxrwxrwx 10 fhem dialout   4096 Okt 30 20:33 www


So wie ich es gestern im Log gesehen habe, versucht dein Device automatisiert im Hintergrund, in der Fhem Umgebung Devices zu finden, welche ansprechbar sind:
Zitat2018.01.05 15:09:11 4: test(getDeviceType): du_Sonnenaufgang is not supported
.........
2018.01.05 15:09:11 4: test(getDeviceType): HM_EG_TKE1_Wohnzimmer is not supported

Legt weekprofile dann trotzdem das Default-Profile an, wenn es kein passendes Device findet?
Bisher habe ich keine entsprechenden Kanäle angelegt, kann dies mit der Grund für das Fehlverhalten sein?

Ich wüsste aber ehrlich gesagt auch (noch) nicht, wie ich diese über die CCU2 anlegen sollte.
ZitatHinweis:
Bei HomeMatic müssen die Kanäle "Clima" bzw. "_Climate" verwendet werden.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Risiko

Zitat von: Rewe2000 am 06 Januar 2018, 14:08:01
Hallo Risiko,

so weit bin ich gar nicht gekommen, das Device test war unter Unsorted nur als Symbol (Zahnräder) und Devicename sichtbar.....
Du kannst doch neben den Zahnrädern auf den Devicenamen klicken und wie gewohnt Attribute einstellen !!!, oder nicht!?

Zitat von: Rewe2000 am 06 Januar 2018, 14:08:01
So wie ich es gestern im Log gesehen habe, versucht dein Device automatisiert im Hintergrund, in der Fhem Umgebung Devices zu finden, welche ansprechbar sind:
Legt weekprofile dann trotzdem das Default-Profile an, wenn es kein passendes Device findet?
Ja. Es wird auch angelegt. Ich verstehe nur leider nicht, warum das Profil nicht in einen Json-String gewandelt werden kann  :(
Leider ist es für mich nicht so einfach, genau auf deine libjson-perl Version zu wechseln. Mal schauen, vielleicht kann ich dir morgen mal ein kleines Testprogramm zusenden.

Rewe2000

Hallo Risiko,

ZitatDu kannst doch neben den Zahnrädern auf den Devicenamen klicken und wie gewohnt Attribute einstellen !!!, oder nicht!?
Ja du hast recht, wenn ich "nur" auf die "Zahnräder" klicke, kommt die Fehlermeldung:
fhemweb_weekprofile.js line 551: TypeError: widget.PROFILE is undefined
Das Device ist dann verschwunden und es wird erst wieder sichtbar, wenn ich den Raum erneut "betrete".

Klicke ich "nur" auf den Devicenamen, so wird das Device geöffnet so wie es sein soll.
defmod test weekprofile
attr test DbLogExclude .*
attr test room Unsorted

setstate test created
setstate test 2018-01-06 20:04:42 profile_count 1
setstate test 2018-01-06 20:04:42 state created


Immer wenn ich alleine nur den Raum betrete, in welchen sich das Device momentan befindet, wenn ich ein Attribut ändere oder hinzufüge oder wenn ich den Devicenamen anklicke, kommt
nur auf der Fhem Oberfläche und nicht im Log die Fehlermeldung:
test Parameter SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data

Ich vermute fast da klappt irgend etwas mit Json nicht bei mir. Gibt es eine Möglichkeit was ich bei mir unter Fhem oder am Raspi direkt testen kann, damit wir das Phänomen bei mir eingrenzen können?
Es muss ja nicht an deinem Device liegen, wenn andere User damit keine Probleme haben.
Meist sitzen die Probleme ca. 50 cm vor dem Bildschirm. ;)

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

kadettilac89

#395
Hi Risiko,

ich habe immer wieder das Phänomen, dass ich ein Profil an einen meiner Thermostate sende und dann komische Werte ankommen.

Ich nutze hierzu nicht den Button mit dem Pfeil, sondern den set-Befehl, in dem Fall set wp_schlafzimmer send_to_device xxx. Das wird auch gemacht, Thermostat zeigt ein paar CMD an. Irgend eine Idee woher das kommt?

Mein Vorgehen gestern:
Update Fhem, Reboot

$Id: 98_weekprofile.pm 15778 2018-01-04 12:34:56Z Risiko $
Datei lt. Fileattribute: 06.01.2018 10:30:17


Anpassen des weekprofiles
Datei lt. Fileattribut: 06.01.2018 10:44:22

__version__=1.1
entry={"REF":null,"NAME":"Schlafzimmer_Aus","DATA":{"Mon":{"time":["24:00"],"temp":["11.0"]},"Thu":{"temp":["11.0"],"time":["24:00"]},"Sun":{"time":["24:00"],"temp":["11.0"]},"Sat":{"time":["24:00"],"temp":["11.0"]},"Fri":{"temp":["11.0"],"time":["24:00"]},"Wed":{"time":["24:00"],"temp":["11.0"]},"Tue":{"time":["24:00"],"temp":["11.0"]}},"TOPIC":"default"}
entry={"TOPIC":"default","REF":null,"NAME":"Schlafzimmer_Homeoffice","DATA":{"Mon":{"temp":["11.0"],"time":["24:00"]},"Thu":{"time":["20:00","24:00"],"temp":["14.5","16.5"]},"Sun":{"temp":["16.5","11.0"],"time":["07:00","24:00"]},"Wed":{"temp":["12.0"],"time":["24:00"]},"Tue":{"temp":["11.0"],"time":["24:00"]},"Sat":{"time":["07:00","20:00","24:00"],"temp":["16.5","14.5","16.5"]},"Fri":{"temp":["16.5","14.5","16.5"],"time":["07:00","20:00","24:00"]}}}
entry={"REF":null,"NAME":"Schlafzimmer_Arbeit","DATA":{"Mon":{"temp":["11.0"],"time":["24:00"]},"Sun":{"temp":["16.5","11.0"],"time":["07:00","24:00"]},"Thu":{"time":["24:00"],"temp":["12.0"]},"Tue":{"temp":["11.0"],"time":["24:00"]},"Wed":{"time":["24:00"],"temp":["11.0"]},"Fri":{"temp":["14.5","16.5"],"time":["20:00","24:00"]},"Sat":{"temp":["16.5","14.5","16.5"],"time":["07:00","20:00","24:00"]}},"TOPIC":"default"}
entry={"TOPIC":"default","NAME":"Schlafzimmer_Urlaub","DATA":{"Wed":{"time":["07:00","20:00","24:00"],"temp":["16.5","14.5","16.5"]},"Tue":{"time":["07:00","20:00","24:00"],"temp":["16.5","14.5","16.5"]},"Sat":{"time":["07:00","20:00","24:00"],"temp":["16.5","14.5","16.5"]},"Fri":{"time":["07:00","20:00","24:00"],"temp":["16.5","14.5","16.5"]},"Mon":{"time":["07:00","20:00","24:00"],"temp":["16.5","14.5","16.5"]},"Thu":{"temp":["16.5","14.5","16.5"],"time":["07:00","20:00","24:00"]},"Sun":{"temp":["16.5","14.5","16.5"],"time":["07:00","20:00","24:00"]}},"REF":null}


Per set an das Thermostat geschickt:
... Auszug aus List ...

     2018-01-06 10:54:01   R_0_tempListSat 07:00 16.5 20:00 14.5 41:20 16.5 24:00 16.5
     2018-01-06 10:54:01   R_1_tempListSun 07:00 16.5 20:00 13.5 24:00 16.5
     2018-01-06 10:54:01   R_2_tempListMon 05:45 16.5 20:00 13.5 24:00 16.5
     2018-01-06 10:54:01   R_3_tempListTue 05:45 16.5 20:00 13.5 24:00 16.5
     2018-01-06 10:54:01   R_4_tempListWed 05:45 16.5 20:00 13.5 24:00 16.5
     2018-01-06 10:54:01   R_5_tempListThu 05:45 16.5 20:00 13.5 24:00 16.5
     2018-01-06 10:54:01   R_6_tempListFri 20:00 14.5 41:20 16.5 24:00 16.5


So sieht master aus, diese Werte sind in der json-Datei nicht enthalten. Zeit 41:20 an Fri + Sat??? Zeitstempel
Eigentlich sollte Profil "Arbeit" aktiv sein. D. h. Mo-Do 11 Grad (Heizung aus)

Mon 00:00-05:45 16.5 °C 05:45-20:00 13.5 °C 20:00-24:00 16.5 °C
Tue 00:00-05:45 16.5 °C 05:45-20:00 13.5 °C 20:00-24:00 16.5 °C
Wed 00:00-05:45 16.5 °C 05:45-20:00 13.5 °C 20:00-24:00 16.5 °C
Thu 00:00-05:45 16.5 °C 05:45-20:00 13.5 °C 20:00-24:00 16.5 °C
Fri 00:00-20:00 14.5 °C 20:00-41:20 16.5 °C 41:20-24:00 16.5 °C
Sat 00:00-07:00 16.5 °C 07:00-20:00 14.5 °C 20:00-41:20 16.5 °C 41:20-24:00 16.5 °C
Sun 00:00-07:00 16.5 °C 07:00-20:00 13.5 °C 20:00-24:00 16.5 °C


Das ist ein List des weekprofiles

Internals:
   DEF        Heizung_Schlafzimmer_Clima
   NAME       wp_schlafzimmer
   NR         307
   NTFY_ORDER 50-wp_schlafzimmer
   STATE      assigned
   TYPE       weekprofile
   MASTERDEV:
     NAME       Heizung_Schlafzimmer_Clima
     TYPE       CUL_HM
   PROFILES:
     HASH(0x52e1718)
     HASH(0x52e2530)
     HASH(0x5360d70)
     HASH(0x5361478)
     HASH(0x5361b40)
   READINGS:
     2018-01-06 16:32:05   profile_count   5
     2018-01-06 16:32:05   state           assigned
   SNDDEVLIST:
     HASH(0x5d4ce30)
     HASH(0x5d4cec0)
     HASH(0x5d4cf20)
   TOPICS:
     default
   helper:
     bm:
       weekprofile_Get:
         cnt        32
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        07.01. 08:45:27
         max        0.00108194351196289
         tot        0.0149655342102051
         mAr:
           HASH(0x41080d8)
           wp_schlafzimmer
           profile_data
           default:master
       weekprofile_Notify:
         cnt        2182
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        06.01. 16:32:05
         max        0.0379369258880615
         tot        0.123831748962402
         mAr:
           HASH(0x41080d8)
           HASH(0x227ea78)
       weekprofile_Set:
         cnt        7
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        07.01. 08:28:08
         max        0.000121116638183594
         tot        0.000646829605102539
         mAr:
           HASH(0x41080d8)
           wp_schlafzimmer
           ?
Attributes:
   group      Wochenprogramme
   room       HomeMatic


Weiterer Test ...

ich habe nun
-- Profil "Aus" an das Thermostat geschickt:
Diesmal hat Thu eine Zeit die nicht passt. Außerdem sollten alle Tage identisch sein.

R_0_tempListSat 24:00 11.0 2018-01-07 09:01:46
R_1_tempListSun 24:00 11.0 2018-01-07 09:01:46
R_2_tempListMon 05:45 16.5 20:00 13.5 24:00 16.5 2018-01-07 09:01:46
R_3_tempListTue 05:45 16.5 20:00 13.5 24:00 16.5 2018-01-07 09:01:46
R_4_tempListWed 05:45 16.5 20:00 13.5 24:00 16.5 2018-01-07 09:01:46
R_5_tempListThu 27:05 11.0 20:00 13.5 24:00 16.5 2018-01-07 09:01:46
R_6_tempListFri 24:00 11.0 2018-01-07 09:01:46

Risiko

Hallo kadettilac89,

der master wird nicht gespeichert - liegt ja im assoziiertem Device.
Um zu sehen, was weekprofile ans device sendet, musst du verbose von weekprofile auf 4 setzen. Das solltest du mal beobachten.
Es werden aber nur Änderungen zum Device gesendet!
Was das Device (CUL_HM) daraus macht und welche Readings sich daraus ergeben, kann weekprofile natürlich nicht beeinflussen. Also am Besten mal den tatsächlichen Befehl an das Device mit loggen.

kadettilac89

ich logge mal mit verbose und teste noch ein wenig rum.

Wann - bei welchem event - wird "master" aktuallisiert? Kann ich das erzwingen? Thermostat ist mit richtigen Werten aktiv, in master werden immer noch alte Werte angezeigt.

Risiko

Zitat von: Rewe2000 am 06 Januar 2018, 20:48:13
Ich vermute fast da klappt irgend etwas mit Json nicht bei mir. Gibt es eine Möglichkeit was ich bei mir unter Fhem oder am Raspi direkt testen kann, damit wir das Phänomen bei mir eingrenzen können?
Es muss ja nicht an deinem Device liegen, wenn andere User damit keine Probleme haben.
Meist sitzen die Probleme ca. 50 cm vor dem Bildschirm. ;)

Gruß Reinhard
Hallo Reinhard,

im Anhang ein kleines Testprogramm zum testen. Aufruf perl test_json.pl.

Risiko

#399
Zitat von: kadettilac89 am 07 Januar 2018, 12:56:42
Wann - bei welchem event - wird "master" aktuallisiert? Kann ich das erzwingen? Thermostat ist mit richtigen Werten aktiv, in master werden immer noch alte Werte angezeigt.
Eigentlich sollte weekprofile das per Notify mitbekommen und das Masterprofil selbständig neu vom Device auslesen. Sendet denn das Device bei Änderung ein Notify? Habe nur MAX und da klappt das prima. Explizit erzwingen kann man das aktuell leider nicht. Kann ich aber bei Gelegenheit mal einbauen.

Nachtrag:
Habe es eingebaut.
Ab morgen kann man mittels reread_master das erneute auslesen des master Profiles erzwingen.

kadettilac89

irgendwie komisch dass es nur eines der Thermostate ist. Events sind da. Werde mal das Thermostat komplett neu einbinden und dann beobachten. Das Verhalten mit den vermischten Temp-List ist aber auch schon an anderen aufgetreten. Verbose ist aktiv, mal abwarten ob es nochmal vorkommt.

DAnke dir für die Unterstützung. Normal schalte ich selten, nur heute aufgefallen da ich geändert hatte und der Heizkörper dennoch warm war.

Schönen Sonntag noch.

Rewe2000

Hallo Risiko,

danke für das Testprogramm, ich habe dieses auf meinem Raspi ausgeführt und so wie ich es sehe, sollte es funktioniert haben:

pi@raspberrypi:~/Downloads $ perl test_json.pl
test array: ["Foo","Bar","Baz"]
test hash: {"fname":"Foo","lname":"Bar"}
test hash of arrays: {"Foo Bar":[23,42,73],"Peti Bar":[10,15],"Zorg":[10,20,30,40]}
test profile: {"Fri":{"temp":["18.0"],"time":["24:00"]},"Wed":{"temp":["18.0"],"time":["24:00"]},"Mon":{"temp":["18.0"],"time":["24:00"]},"Tue":{"time":["24:00"],"temp":["18.0"]},"Sat":{"temp":["18.0"],"time":["24:00"]},"Sun":{"temp":["18.0"],"time":["24:00"]},"Thu":{"time":["24:00"],"temp":["18.0"]}}
pi@raspberrypi:~/Downloads $


Gerne führe ich noch weitere Tests bei mir aus, wenn ich dich damit unterstützen kann.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

treborst

Hallo,

erstmal vielen Dank für dieses super praktische Tool, funktioniert einfacher als man beim lesen des Wiki vermutet.

Eine von mir gewünschte Einstellung funktioniert leider nicht wie beschrieben.

Wenn ich einen HomeMatic Thermostat auf "ON" stellen möchte, dann wird er auf "OFF" gesetzt.
Setzt man ihn auf "OFF" dann funktioniert das.
userattr "weekprofile" ist gesetzt

Wieso nimmt er die Einstellung "ON" nicht an?

Wäre toll wenn du dir das mal anschauen könntest, da ich während der "Nicht Heizperiode" alle Regler auf "ON" stellen möchte, weil das die Ventile entlastet.

Danke und Gruß
Robert

kadettilac89

konnte das Verhalten nachstellen.

Log was an das Thermostat gesendet wird:


2018.01.30 12:38:49.166 3: CUL_HM set Heizung_Wohnzimmer_Clima tempListSun exec 06:00 18.0 07:00 19.0 16:00 on 24:00 off
2018.01.30 12:38:49.153 3: CUL_HM set Heizung_Wohnzimmer_Clima tempListSat prep 06:00 18.0 07:00 19.0 22:00 on 24:00 18.0
2018.01.30 12:38:49.150 3: CUL_HM set Heizung_Wohnzimmer_Clima tempListFri prep 14:00 18.0 17:00 20.5 22:00 on 24:00 18.0
2018.01.30 12:38:49.146 3: CUL_HM set Heizung_Wohnzimmer_Clima tempListWed prep 24:00 off
2018.01.30 12:38:49.144 3: CUL_HM set Heizung_Wohnzimmer_Clima tempListTue prep 24:00 off
2018.01.30 12:38:49.142 3: CUL_HM set Heizung_Wohnzimmer_Clima tempListMon prep 24:00 off


--> Muss noch etwas geändert werden, damit das "off" durch den echten Wert aus dem Attribut getauscht wird? Ein "off" in der TempList wird bei mir als 0.00 °C interpretiert.
--> Noch ein Testergebnis ... Im Dropdown erscheint "on" ganz unten. Ich hatte den Wert 21.5 als on. Ich kann dann im Dropdown keine Werte größer 21.5 auswählen.

Zitat von: treborst am 29 Januar 2018, 22:44:33
Wäre toll wenn du dir das mal anschauen könntest, da ich während der "Nicht Heizperiode" alle Regler auf "ON" stellen möchte, weil das die Ventile entlastet.

Ich gehe davon aus, du sprichst von den Attributen

attr wp_wohnzimmer tempOFF 11
attr wp_wohnzimmer tempON 21,5

Wenn ich das richtig verstehe ist das nur ein Platzhalter für die Temperatur (11 Grad bei mir). Dadurch ist das Thermostat weder abgeschaltet noch verhält es sich anders als wenn du den Wert manuell setzen würdest. Nicht gleichzusetzen mit dem "set <Heizung> off".

treborst

Zitatattr wp_wohnzimmer tempOFF 11
attr wp_wohnzimmer tempON 21,5
Wenn ich das richtig verstehe ist das nur ein Platzhalter für die Temperatur (11 Grad bei mir). Dadurch ist das Thermostat weder abgeschaltet noch verhält es sich anders als wenn du den Wert manuell setzen würdest. Nicht gleichzusetzen mit dem "set <Heizung> off".

Ich habe das so verstanden, dass bei "OFF" das Ventil geschlossen wird (Wert 0) und bei "ON" geöffnet wird (Wert 100); d.h. es findet keine Regelung mehr statt, bis ein Wert <> ON/OFF eingestellt wird,
Bin mir relativ sicher dass das so ist, da ich bei 2 Heizkörpern den Wert of "OFF" gesetzt habe und da keine Regelung stattfindet.

Somit müsste nur der Wert "ON" auch übertragen werden.

ZitatNicht gleichzusetzen mit dem "set <Heizung> off".
Was meinst du damit? Den Befehl kenne ich noch nicht.

Grüße