[gelöst] Freezes, sobald eine Raumansicht mit readingsgroup geöffnet ist.

Begonnen von frank, 01 September 2015, 22:00:50

Vorheriges Thema - Nächstes Thema

frank

hallo,

wenn ich im webif eine raumansicht mit readingsgroup öffne, zeigt mir performancemonitor (seit heute?) ständig freezes an (1-6 sek), die wohl entstehen, sobald sich die dargestellten werte ändern (longpoll). nach dem schliessen der seite ist das phänomen wieder verschwunden. seltsam finde ich allerdings, dass zu den von performancemonitor gemeldeten freeze-zeitpunkten keine entsprechenden aussetzer im log zu finden sind. so als würde performancemonitor selber gefreezed und nicht fhem.

2015.09.01 19:21:24.537 1: Perfmon: possible freeze starting at 19:21:23, delay is 1.536
2015.09.01 19:22:18.069 1: Perfmon: possible freeze starting at 19:22:17, delay is 1.068
2015.09.01 19:23:07.480 1: Perfmon: possible freeze starting at 19:23:06, delay is 1.479
2015.09.01 19:23:24.186 1: Perfmon: possible freeze starting at 19:23:23, delay is 1.185
2015.09.01 19:23:28.082 1: Perfmon: possible freeze starting at 19:23:27, delay is 1.082
2015.09.01 19:24:14.900 1: Perfmon: possible freeze starting at 19:24:13, delay is 1.899
2015.09.01 19:26:11.620 1: Perfmon: possible freeze starting at 19:26:10, delay is 1.619
2015.09.01 19:26:25.266 1: Perfmon: possible freeze starting at 19:26:24, delay is 1.266
2015.09.01 19:26:49.480 1: Perfmon: possible freeze starting at 19:26:48, delay is 1.479
2015.09.01 19:28:43.197 1: Perfmon: possible freeze starting at 19:28:42, delay is 1.197
2015.09.01 19:29:09.944 1: Perfmon: possible freeze starting at 19:29:07, delay is 2.943
2015.09.01 19:29:28.402 1: Perfmon: possible freeze starting at 19:29:27, delay is 1.402
2015.09.01 19:32:28.711 1: Perfmon: possible freeze starting at 19:32:27, delay is 1.71
2015.09.01 19:34:20.023 1: Perfmon: possible freeze starting at 19:34:19, delay is 1.022
2015.09.01 19:34:28.395 1: Perfmon: possible freeze starting at 19:34:24, delay is 4.392
2015.09.01 19:34:31.282 1: Perfmon: possible freeze starting at 19:34:30, delay is 1.282
2015.09.01 19:35:17.308 1: Perfmon: possible freeze starting at 19:35:16, delay is 1.307
2015.09.01 19:37:06.413 1: Perfmon: possible freeze starting at 19:37:05, delay is 1.413
2015.09.01 19:37:43.116 1: Perfmon: possible freeze starting at 19:37:42, delay is 1.115
2015.09.01 19:37:59.557 1: Perfmon: possible freeze starting at 19:37:57, delay is 2.556
2015.09.01 19:38:01.123 1: Perfmon: possible freeze starting at 19:38:00, delay is 1.122
2015.09.01 19:38:37.876 1: Perfmon: possible freeze starting at 19:38:34, delay is 3.875
2015.09.01 19:38:44.548 1: Perfmon: possible freeze starting at 19:38:38, delay is 6.547


hier mal ein log mit verbose=5. am ende die performance monitor meldung.

2015.09.01 16:08:46.870 5: HMLAN/RAW: /E83765A,0000,17BA000E,FF,FFB2,71A27083765A1ACE1F00A85A275500005CC60708

2015.09.01 16:08:46.873 5: HMLAN_Parse: hmlan1 R:E83765A   stat:0000 t:17BA000E d:FF r:FFB2     m:71 A270 83765A 1ACE1F 00A85A275500005CC60708
2015.09.01 16:08:46.876 5: hmlan1 dispatch A1471A27083765A1ACE1F00A85A275500005CC60708::-78:hmlan1
2015.09.01 16:08:46.891 5: HMLAN: Skip ACK
2015.09.01 16:08:46.894 5: CUL_HM Wetter.Nord protEvent:CMDs_done
2015.09.01 16:08:46.896 5: CUL_HM Wetter.Nord sent ACK:2
2015.09.01 16:08:46.919 5: Triggering Wetter.Nord (7 changes)
2015.09.01 16:08:46.921 5: Notify loop for Wetter.Nord humidity: 90
2015.09.01 16:08:46.929 5: statistics my: Notify.261 Notification of 'Wetter.Nord' received. Device not monitored.
2015.09.01 16:08:47.073 5: Triggering myTemp (1 changes)
2015.09.01 16:08:47.074 5: Notify loop for myTemp Wetter.Nord.humidity: <div style="color:#00C4FF">90 %</div>
2015.09.01 16:08:47.080 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:47.217 5: Triggering myTemp (1 changes)
2015.09.01 16:08:47.219 5: Notify loop for myTemp Wetter.Nord.luminosity: 238
2015.09.01 16:08:47.224 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:47.314 5: Triggering myTemp (1 changes)
2015.09.01 16:08:47.316 5: Notify loop for myTemp Wetter.Nord.humidity: <div style="color:#00C4FF">90 %</div>
2015.09.01 16:08:47.322 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:47.446 5: Triggering myTemp (1 changes)
2015.09.01 16:08:47.448 5: Notify loop for myTemp Wetter.Nord.luminosity: 238
2015.09.01 16:08:47.453 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:47.545 5: Triggering myTemp (1 changes)
2015.09.01 16:08:47.546 5: Notify loop for myTemp Wetter.Nord.pressure: 1006.9
2015.09.01 16:08:47.552 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:47.645 5: Triggering myTemp (1 changes)
2015.09.01 16:08:47.647 5: Notify loop for myTemp Wetter.Nord.humidity: <div style="color:#00C4FF">90 %</div>
2015.09.01 16:08:47.655 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:47.753 5: Triggering myTemp (1 changes)
2015.09.01 16:08:47.755 5: Notify loop for myTemp Wetter.Nord.luminosity: 238
2015.09.01 16:08:47.760 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:47.853 5: Triggering myTemp (1 changes)
2015.09.01 16:08:47.855 5: Notify loop for myTemp Wetter.Nord.pressure: 1006.9
2015.09.01 16:08:47.860 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:47.954 5: Triggering myTemp (1 changes)
2015.09.01 16:08:47.956 5: Notify loop for myTemp Wetter.Nord.humidity: <div style="color:#00C4FF">90 %</div>
2015.09.01 16:08:47.961 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:48.085 5: Triggering myTemp (1 changes)
2015.09.01 16:08:48.086 5: Notify loop for myTemp Wetter.Nord.temperature: <div style="color:#FCB200">16.8 °C</div>
2015.09.01 16:08:48.091 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:48.190 5: Triggering myTemp (1 changes)
2015.09.01 16:08:48.191 5: Notify loop for myTemp Wetter.Nord.luminosity: 238
2015.09.01 16:08:48.197 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:48.291 5: Triggering myTemp (1 changes)
2015.09.01 16:08:48.293 5: Notify loop for myTemp Wetter.Nord.pressure: 1006.9
2015.09.01 16:08:48.298 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:48.390 5: Triggering myTemp (1 changes)
2015.09.01 16:08:48.392 5: Notify loop for myTemp Wetter.Nord.humidity: <div style="color:#00C4FF">90 %</div>
2015.09.01 16:08:48.398 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:48.498 5: Triggering myTemp (1 changes)
2015.09.01 16:08:48.500 5: Notify loop for myTemp Wetter.Nord.temperature: <div style="color:#FCB200">16.8 °C</div>
2015.09.01 16:08:48.505 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:48.602 5: Triggering myTemp (1 changes)
2015.09.01 16:08:48.603 5: Notify loop for myTemp Wetter.Nord.luminosity: 238
2015.09.01 16:08:48.609 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:48.703 5: Triggering myTemp (1 changes)
2015.09.01 16:08:48.705 5: Notify loop for myTemp Wetter.Nord.pressure: 1006.9
2015.09.01 16:08:48.711 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:48.805 5: Triggering myTemp (1 changes)
2015.09.01 16:08:48.806 5: Notify loop for myTemp Wetter.Nord.humidity: <div style="color:#00C4FF">90 %</div>
2015.09.01 16:08:48.812 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:48.914 5: Triggering myTemp (1 changes)
2015.09.01 16:08:48.916 5: Notify loop for myTemp Wetter.Nord.temperature: <div style="color:#FCB200">16.8 °C</div>
2015.09.01 16:08:48.921 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:49.017 5: Triggering myTemp (1 changes)
2015.09.01 16:08:49.019 5: Notify loop for myTemp Wetter.Nord.luminosity: 238
2015.09.01 16:08:49.024 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:49.117 5: Triggering myTemp (1 changes)
2015.09.01 16:08:49.119 5: Notify loop for myTemp Wetter.Nord.pressure: 1006.9
2015.09.01 16:08:49.123 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:49.219 5: Triggering myTemp (1 changes)
2015.09.01 16:08:49.221 5: Notify loop for myTemp Wetter.Nord.humidity: <div style="color:#00C4FF">90 %</div>
2015.09.01 16:08:49.226 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:49.351 5: Triggering myTemp (1 changes)
2015.09.01 16:08:49.352 5: Notify loop for myTemp Wetter.Nord.temperature: <div style="color:#FCB200">16.8 °C</div>
2015.09.01 16:08:49.358 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:49.453 5: Triggering myTemp (1 changes)
2015.09.01 16:08:49.455 5: Notify loop for myTemp Wetter.Nord.luminosity: 238
2015.09.01 16:08:49.460 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:49.550 5: Triggering myTemp (1 changes)
2015.09.01 16:08:49.552 5: Notify loop for myTemp Wetter.Nord.pressure: 1006.9
2015.09.01 16:08:49.558 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:49.650 5: Triggering myTemp (1 changes)
2015.09.01 16:08:49.652 5: Notify loop for myTemp Wetter.Nord.humidity: <div style="color:#00C4FF">90 %</div>
2015.09.01 16:08:49.657 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:49.750 5: Triggering myTemp (1 changes)
2015.09.01 16:08:49.753 5: Notify loop for myTemp Wetter.Nord.absFeuchte: 12.9 g/m³
2015.09.01 16:08:49.759 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:49.881 5: Triggering myTemp (1 changes)
2015.09.01 16:08:49.883 5: Notify loop for myTemp Wetter.Nord.temperature: <div style="color:#FCB200">16.8 °C</div>
2015.09.01 16:08:49.887 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:49.983 5: Triggering myTemp (1 changes)
2015.09.01 16:08:49.985 5: Notify loop for myTemp Wetter.Nord.luminosity: 238
2015.09.01 16:08:49.990 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:50.082 5: Triggering myTemp (1 changes)
2015.09.01 16:08:50.083 5: Notify loop for myTemp Wetter.Nord.dewpoint: <div style="color:orange">15.2 °C</div>
2015.09.01 16:08:50.089 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:50.183 5: Triggering myTemp (1 changes)
2015.09.01 16:08:50.185 5: Notify loop for myTemp Wetter.Nord.pressure: 1006.9
2015.09.01 16:08:50.190 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:50.291 5: Triggering myTemp (1 changes)
2015.09.01 16:08:50.294 5: Notify loop for myTemp Wetter.Nord.humidity: <div style="color:#00C4FF">90 %</div>
2015.09.01 16:08:50.299 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:50.391 5: Triggering myTemp (1 changes)
2015.09.01 16:08:50.393 5: Notify loop for myTemp Wetter.Nord.absFeuchte: 12.9 g/m³
2015.09.01 16:08:50.398 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:50.494 5: Triggering myTemp (1 changes)
2015.09.01 16:08:50.496 5: Notify loop for myTemp Wetter.Nord.temperature: <div style="color:#FCB200">16.8 °C</div>
2015.09.01 16:08:50.501 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:50.596 5: Triggering myTemp (1 changes)
2015.09.01 16:08:50.598 5: Notify loop for myTemp Wetter.Nord.luminosity: 238
2015.09.01 16:08:50.603 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:50.694 5: Triggering myTemp (1 changes)
2015.09.01 16:08:50.695 5: Notify loop for myTemp Wetter.Nord.dewpoint: <div style="color:orange">15.2 °C</div>
2015.09.01 16:08:50.700 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:50.795 5: Triggering myTemp (1 changes)
2015.09.01 16:08:50.797 5: Notify loop for myTemp Wetter.Nord.pressure: 1006.9
2015.09.01 16:08:50.802 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:50.894 5: Triggering myTemp (1 changes)
2015.09.01 16:08:50.897 5: Notify loop for myTemp Wetter.Nord.humidity: <div style="color:#00C4FF">90 %</div>
2015.09.01 16:08:50.902 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:50.998 5: Triggering myTemp (1 changes)
2015.09.01 16:08:51.000 5: Notify loop for myTemp Wetter.Nord.absFeuchte: 12.9 g/m³
2015.09.01 16:08:51.005 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:51.138 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:51.146 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:51.153 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:51.159 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:51.166 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:51.172 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:51.179 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:51.185 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:51.191 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:51.199 5: HMLAN/RAW: /E83765A,0000,04E8A664,FF,FFB1,71A27083765A1ACE1F00A85A275500005CC60708
E1DFDA5,0000,04E8A886,FF,FFB9,A586701DFDA500000000DE47

2015.09.01 16:08:51.202 5: HMLAN_Parse: hmusb1 R:E83765A   stat:0000 t:04E8A664 d:FF r:FFB1     m:71 A270 83765A 1ACE1F 00A85A275500005CC60708
2015.09.01 16:08:51.204 5: hmusb1 dispatch A1471A27083765A1ACE1F00A85A275500005CC60708::-79:hmusb1
2015.09.01 16:08:51.217 4: CUL_HM Wetter.Nord dupe: dont process
2015.09.01 16:08:51.223 5: HMLAN_Parse: hmusb1 R:E1DFDA5   stat:0000 t:04E8A886 d:FF r:FFB9     m:A5 8670 1DFDA5 000000 00DE47
2015.09.01 16:08:51.226 5: hmusb1 dispatch A0CA586701DFDA500000000DE47::-71:hmusb1
2015.09.01 16:08:51.255 5: Triggering Thermostat.SZ (2 changes)
2015.09.01 16:08:51.257 5: Notify loop for Thermostat.SZ measured-temp: 22.2
2015.09.01 16:08:51.263 5: statistics my: Notify.261 Notification of 'Thermostat.SZ' received. Device not monitored.
2015.09.01 16:08:51.321 4: PID20 PID20.SZ: Notify.212 check 2 readings for measured-temp
2015.09.01 16:08:51.323 5: PID20 PID20.SZ: Notify.220 check event:<measured-temp: 22.2>
2015.09.01 16:08:51.383 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:51.389 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:51.397 5: Triggering Thermostat.SZ_Weather (2 changes)
2015.09.01 16:08:51.398 5: Notify loop for Thermostat.SZ_Weather measured-temp: 22.2
2015.09.01 16:08:51.407 5: statistics my: Notify.261 Notification of 'Thermostat.SZ_Weather' received. Device not monitored.
2015.09.01 16:08:51.531 5: Triggering myTemp (1 changes)
2015.09.01 16:08:51.533 5: Notify loop for myTemp Thermostat.SZ_Weather.measured-temp: <div style="color:#E1001E">22.2 °C</div>
2015.09.01 16:08:51.538 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:51.647 5: Triggering myTemp (1 changes)
2015.09.01 16:08:51.649 5: Notify loop for myTemp Thermostat.SZ_Weather.measured-temp: <div style="color:#E1001E">22.2 °C</div>
2015.09.01 16:08:51.654 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:51.784 5: Triggering myTemp (1 changes)
2015.09.01 16:08:51.786 5: Notify loop for myTemp Thermostat.SZ_Weather.measured-temp: <div style="color:#E1001E">22.2 °C</div>
2015.09.01 16:08:51.790 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:51.890 5: Triggering myTemp (1 changes)
2015.09.01 16:08:51.892 5: Notify loop for myTemp Thermostat.SZ_Weather.absFeuchte: 13.9 g/m³
2015.09.01 16:08:51.897 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:52.028 5: Triggering myTemp (1 changes)
2015.09.01 16:08:52.030 5: Notify loop for myTemp Thermostat.SZ_Weather.dewpoint: <div style="color:lightgreen">16.7 °C</div>
2015.09.01 16:08:52.035 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:52.132 5: Triggering myTemp (1 changes)
2015.09.01 16:08:52.134 5: Notify loop for myTemp Thermostat.SZ_Weather.measured-temp: <div style="color:#E1001E">22.2 °C</div>
2015.09.01 16:08:52.139 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:52.238 5: Triggering myTemp (1 changes)
2015.09.01 16:08:52.240 5: Notify loop for myTemp Thermostat.SZ_Weather.absFeuchte: 13.9 g/m³
2015.09.01 16:08:52.245 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:52.355 5: Triggering myTemp (1 changes)
2015.09.01 16:08:52.358 5: Notify loop for myTemp Thermostat.SZ_Weather.dewpoint: <div style="color:lightgreen">16.7 °C</div>
2015.09.01 16:08:52.363 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:52.460 5: Triggering myTemp (1 changes)
2015.09.01 16:08:52.462 5: Notify loop for myTemp Thermostat.SZ_Weather.measured-temp: <div style="color:#E1001E">22.2 °C</div>
2015.09.01 16:08:52.467 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:52.565 5: Triggering myTemp (1 changes)
2015.09.01 16:08:52.567 5: Notify loop for myTemp Thermostat.SZ_Weather.absFeuchte: 13.9 g/m³
2015.09.01 16:08:52.572 5: statistics my: Notify.261 Notification of 'myTemp' received. Device not monitored.
2015.09.01 16:08:52.679 5: Triggering n_klima
2015.09.01 16:08:52.690 4: n_klima exec {
my $humAbs=AbsoluteFeuchte(ReadingsVal($NAME,"measured-temp",0),ReadingsVal($NAME,"humidity",0));;
  my $oldReading=ReadingsVal($NAME,"humidityAbsolut0",0);;
    if($humAbs != $oldReading) {
        for(my $i=3;;$i>=0;;$i--) {
          $oldReading=ReadingsVal($NAME,"humidityAbsolut".$i,0);;
          fhem("setreading $NAME humidityAbsolut".($i+1)." $oldReading");;
        }
        fhem("setreading $NAME humidityAbsolut0 $humAbs");;
        for(my $i=2;;$i>=0;;$i--) {
          $oldReading=ReadingsVal($NAME,"humidityAbsolutDelta".$i,0);;
          fhem("setreading $NAME humidityAbsolutDelta".($i+1)." $oldReading");;
        }
    my $deltaHumAbs=ReadingsVal($NAME,"humidityAbsolut0",0)-ReadingsVal($NAME,"humidityAbsolut1",0);;
        fhem("setreading $NAME humidityAbsolutDelta0 $deltaHumAbs");;
        my $trend="???";;
        my $delta0=ReadingsVal($NAME,"humidityAbsolutDelta0",0);;
        my $delta1=ReadingsVal($NAME,"humidityAbsolutDelta1",0);;
        my $delta2=ReadingsVal($NAME,"humidityAbsolutDelta2",0);;
        my $delta3=ReadingsVal($NAME,"humidityAbsolutDelta3",0);;
        if($delta3<0 && $delta2<0 && $delta1<0 && $delta0<0) {$trend="↓↓";;}
        elsif($delta3<0 && $delta2<0 && $delta1<0 && $delta0>0) {$trend="↓↗";;}
        elsif($delta3<0 && $delta2<0 && $delta1>0 && $delta0<0) {$trend="↘→";;}
        elsif($delta3<0 && $delta2<0 && $delta1>0 && $delta0>0) {$trend="↘↗";;}
        elsif($delta3<0 && $delta2>0 && $delta1<0 && $delta0<0) {$trend="→↘";;}
        elsif($delta3<0 && $delta2>0 && $delta1<0 && $delta0>0) {$trend="→→";;}
        elsif($delta3<0 && $delta2>0 && $delta1>0 && $delta0<0) {$trend="↗↘";;}
        elsif($delta3<0 && $delta2>0 && $delta1>0 && $delta0>0) {$trend="↘↑";;}
        elsif($delta3>0 && $delta2<0 && $delta1<0 && $delta0<0) {$trend="↗↓";;}
        elsif($delta3>0 && $delta2<0 && $delta1<0 && $delta0>0) {$trend="↘↗";;}
        elsif($delta3>0 && $delta2<0 && $delta1>0 && $delta0<0) {$trend="→→";;}
        elsif($delta3>0 && $delta2<0 && $delta1>0 && $delta0>0) {$trend="→↗";;}
        elsif($delta3>0 && $delta2>0 && $delta1<0 && $delta0<0) {$trend="↗↘";;}
        elsif($delta3>0 && $delta2>0 && $delta1<0 && $delta0>0) {$trend="↗→";;}
        elsif($delta3>0 && $delta2>0 && $delta1>0 && $delta0<0) {$trend="↑↘";;}
        elsif($delta3>0 && $delta2>0 && $delta1>0 && $delta0>0) {$trend="↑↑";;}
        else {$trend="???";;}
        fhem("setreading $NAME humidityAbsolutTrend $trend");;
        my $device=$NAME;;
        $device=~s/_Weather//;;
        fhem("setreading $device humidityAbsolutTrend $trend");;
}
}
2015.09.01 16:08:52.701 5: Cmd: >{
my $humAbs=AbsoluteFeuchte(ReadingsVal($NAME,"measured-temp",0),ReadingsVal($NAME,"humidity",0));
  my $oldReading=ReadingsVal($NAME,"humidityAbsolut0",0);
    if($humAbs != $oldReading) {
        for(my $i=3;$i>=0;$i--) {
          $oldReading=ReadingsVal($NAME,"humidityAbsolut".$i,0);
          fhem("setreading $NAME humidityAbsolut".($i+1)." $oldReading");
        }
        fhem("setreading $NAME humidityAbsolut0 $humAbs");
        for(my $i=2;$i>=0;$i--) {
          $oldReading=ReadingsVal($NAME,"humidityAbsolutDelta".$i,0);
          fhem("setreading $NAME humidityAbsolutDelta".($i+1)." $oldReading");
        }
    my $deltaHumAbs=ReadingsVal($NAME,"humidityAbsolut0",0)-ReadingsVal($NAME,"humidityAbsolut1",0);
        fhem("setreading $NAME humidityAbsolutDelta0 $deltaHumAbs");
        my $trend="???";
        my $delta0=ReadingsVal($NAME,"humidityAbsolutDelta0",0);
        my $delta1=ReadingsVal($NAME,"humidityAbsolutDelta1",0);
        my $delta2=ReadingsVal($NAME,"humidityAbsolutDelta2",0);
        my $delta3=ReadingsVal($NAME,"humidityAbsolutDelta3",0);
        if($delta3<0 && $delta2<0 && $delta1<0 && $delta0<0) {$trend="↓↓";}
        elsif($delta3<0 && $delta2<0 && $delta1<0 && $delta0>0) {$trend="↓↗";}
        elsif($delta3<0 && $delta2<0 && $delta1>0 && $delta0<0) {$trend="↘→";}
        elsif($delta3<0 && $delta2<0 && $delta1>0 && $delta0>0) {$trend="↘↗";}
        elsif($delta3<0 && $delta2>0 && $delta1<0 && $delta0<0) {$trend="→↘";}
        elsif($delta3<0 && $delta2>0 && $delta1<0 && $delta0>0) {$trend="→→";}
        elsif($delta3<0 && $delta2>0 && $delta1>0 && $delta0<0) {$trend="↗↘";}
        elsif($delta3<0 && $delta2>0 && $delta1>0 && $delta0>0) {$trend="↘↑";}
        elsif($delta3>0 && $delta2<0 && $delta1<0 && $delta0<0) {$trend="↗↓";}
        elsif($delta3>0 && $delta2<0 && $delta1<0 && $delta0>0) {$trend="↘↗";}
        elsif($delta3>0 && $delta2<0 && $delta1>0 && $delta0<0) {$trend="→→";}
        elsif($delta3>0 && $delta2<0 && $delta1>0 && $delta0>0) {$trend="→↗";}
        elsif($delta3>0 && $delta2>0 && $delta1<0 && $delta0<0) {$trend="↗↘";}
        elsif($delta3>0 && $delta2>0 && $delta1<0 && $delta0>0) {$trend="↗→";}
        elsif($delta3>0 && $delta2>0 && $delta1>0 && $delta0<0) {$trend="↑↘";}
        elsif($delta3>0 && $delta2>0 && $delta1>0 && $delta0>0) {$trend="↑↑";}
        else {$trend="???";}
        fhem("setreading $NAME humidityAbsolutTrend $trend");
        my $device=$NAME;
        $device=~s/_Weather//;
        fhem("setreading $device humidityAbsolutTrend $trend");
}
}<
2015.09.01 16:08:52.753 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:52.761 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:52.767 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:52.773 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:52.787 1: Perfmon: possible freeze starting at 16:08:47, delay is 5.786


wegen der ähnlichkeit zu diesem problem http://forum.fhem.de/index.php/topic,40598.0.html habe ich auch schon diese idee erfolglos probiert.

Zitat von: rudolfkoenig am 01 September 2015, 09:39:18
stacktrace bleibt sinnlos. Neuer Vorschlag: die "next" Zeile ersetzen mit

$i = "" if(!defined($i)); # Forum #40598
next if(!$intAt{$i}); # deleted in the loop

hier noch apptime max

                                name             function    max  count    total  average maxDly
                              hmusb1           HMLAN_Read   4209    517    16101    31.14      0 HASH(hmusb1)
                              hmlan1           HMLAN_Read   4103    526   149583   284.38      0 HASH(hmlan1)
                              myTemp readingsGroup_Notify   3920   1493   102773    68.84      0 HASH(myTemp); HASH(Wetter.Sued)
                         tmr-at_Exec      HASH(0x1306598)    833     43    18376   427.35    313 HASH(a_io_internals)
                      tmr-PID20_Calc             PID20.SZ    629     58    11363   195.91   1879 PID20.SZ
                      tmr-PID20_Calc             PID20.AZ    621     44     8379   190.43   1954 PID20.AZ
                      tmr-PID20_Calc             PID20.WZ    621     44     8398   190.86   3126 PID20.WZ
                      tmr-PID20_Calc            PID20.Bad    620     44     8537   194.02   3884 PID20.Bad
                  tmr-HCS_checkState      HASH(0x168f7d8)    589     44    15562   353.68   3315 HASH(BROETJE)
                         tmr-at_Exec      HASH(0x16f8d40)    537      3     1553   517.67      6 HASH(AutoSave)
                              cul433             CUL_Read    474      1      474   474.00      0 HASH(cul433)
            VentilControler.Bad_Btn1           CUL_HM_Set    437      1      437   437.00      0 HASH(VentilControler.Bad_Btn1); VentilControler.Bad_Btn1; valvePos; 0
        VentilControler.AZ.Nord_Btn1           CUL_HM_Set    436      1      436   436.00      0 HASH(VentilControler.AZ.Nord_Btn1); VentilControler.AZ.Nord_Btn1; valvePos; 0
             VentilControler.SZ_Btn1           CUL_HM_Set    430      1      430   430.00      0 HASH(VentilControler.SZ_Btn1); VentilControler.SZ_Btn1; valvePos; 0
             VentilControler.WZ_Btn1           CUL_HM_Set    424      1      424   424.00      0 HASH(VentilControler.WZ_Btn1); VentilControler.WZ_Btn1; valvePos; 0
                      n_sync_ITR1500          notify_Exec    338   1493     1449     0.97      0 HASH(n_sync_ITR1500); HASH(FB_IT01_chn01)
                             n_klima          notify_Exec    328   1493     8747     5.86      0 HASH(n_klima); HASH(Thermostat.WZ_Weather)
                           n_set_hzg          notify_Exec    322     44     7209   163.84      0 HASH(n_set_hzg); HASH(BROETJE)
                 tmr-Twilight_sunpos      HASH(0x1d23f90)    255      1      255   255.00    334 HASH(myTwilight_sunpos)
                 tmr-HourCounter_Run      hc_system_attak    207      9     1618   179.78   1192 hc_system_attak
                         tmr-at_Exec      HASH(0x1bba688)    205      3      605   201.67      6 HASH(a)


und apptime maxdly

                                name             function    max  count    total  average maxDly
             tmr-CUL_HM_valvePosUpdt    valvePos:B3B3B301     12     19       87     4.58   6757 valvePos:B3B3B301
            tmr-perfmon_ProcessTimer       HASH(0xb36460)      9   2739      195     0.07   5852 HASH(0xb36460)
                 tmr-Twilight_sunpos      HASH(0x1daa668)    167      1      167   167.00   5014 HASH(myTwilight_sunpos)
                      tmr-PID20_Calc            PID20.Bad    620     47     9085   193.30   3884 PID20.Bad
             tmr-CUL_HM_valvePosUpdt    valvePos:B2B2B201     18     18       99     5.50   3609 valvePos:B2B2B201
                  tmr-HCS_checkState      HASH(0x168f7d8)    589     47    16729   355.94   3315 HASH(BROETJE)
                      tmr-PID20_Calc             PID20.WZ    621     47     8940   190.21   3126 PID20.WZ
             tmr-CUL_HM_valvePosUpdt    valvePos:B1B1B101     23     19      104     5.47   2788 valvePos:B1B1B101
                 tmr-HMLAN_KeepAlive     keepAlive:hmusb1     13    112      415     3.71   2536 keepAlive:hmusb1
            tmr-HMLAN_KeepAliveCheck   keepAliveCk:hmlan1      0    115        0     0.00   2430
              tmr-CUL_HM_valvePosTmr    valveTmr:B1B1B101      9     18       43     2.39   2095 valveTmr:B1B1B101
                      tmr-PID20_Calc             PID20.AZ    621     47     8935   190.11   1954 PID20.AZ
                      tmr-PID20_Calc         PID20.Kueche     24     47      502    10.68   1891 PID20.Kueche
                      tmr-PID20_Calc             PID20.SZ    629     62    12210   196.94   1879 PID20.SZ
            tmr-HMLAN_KeepAliveCheck   keepAliveCk:hmusb1      1    112        1     0.01   1855 keepAliveCk:hmusb1
                 tmr-HMLAN_KeepAlive     keepAlive:hmlan1      8    112      402     3.59   1679 keepAlive:hmlan1
         tmr-FW_closeInactiveClients                          20     47      341     7.26   1653
         tmr-PRESENCE_StartLocalScan      HASH(0x1bbac28)     49     39     1542    39.54   1614 HASH(laptop)
                    tmr-BlockingKill      HASH(0x2058838)      0      1        0     0.00   1458
                 tmr-HourCounter_Run      hc_system_attak    207      9     1618   179.78   1192 hc_system_attak
                 tmr-HourCounter_Run Pumpe.Garten.Brunnen.Cnt    179      9     1580   175.56   1139 Pumpe.Garten.Brunnen.Cnt

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

herrmannj

Hi

seltsam finde ich allerdings, dass zu den von performancemonitor gemeldeten freeze-zeitpunkten keine entsprechenden aussetzer im log zu finden sind. so als würde performancemonitor selber gefreezed und nicht fhem.

Ich bin mir nicht sicher ob ich den Satz richtig verstehe.

Vmtl so: (?)

perfmon meldet hiermit das von 16:08:47 bis 16:08:52 "nichts ging", Du siehst aber im log das kein "Loch", sondern das da Action war und wunderst Dich (ein wenig). Richtig ?
2015.09.01 16:08:52.787 1: Perfmon: possible freeze starting at 16:08:47, delay is 5.786

perfmon sagt "possible freeze", -> eventuell.

"freeze" (mit perfmon) meint sowohl den klassischen Hänger, wenn fhem also in einem sleep oder timeout hängt und dadurch mit warten blockiert ist.
Die Meldung kann aber auch besagen das fhem fast 5 Sekunden mit dem abarbeiten von "irgendwas" beschäftigt ist und daher auf nichts anderes reagieren kann.

perfmon arbeitet immer "nur" als Indikator dafür das ein beliebiges event oder eine Aktion (zb ein Lichtschalter) xx Sekunden nicht bearbeitet werden kann, hier ca 5,8 Sekunden. Das scheint mir in Deinem Fall die Summe vieler kleiner Aktionen zu sein die, für sich genommen, alle um die 100ms brauchen (statistik?).

Zusammen wird es aber dann eben spürbar, sogar schmerzhaft ...

vg
joerg




frank

ich wundere mich über die freezes als solche, da ich sie noch nie wahrgenommen habe. readingsgroup und perfmon nutze ich bereits seit über 1 jahr und der tab mit der readingsgroup ist eigentlich ständig geöffnet. ausserdem beobachte ich perfmon hinweise im log regelmässig, da ich ein sauberes timing für meine heizungssteuerung benötige. freeezes in dieser häufigkeit hätte ich sofort bemerkt, so wie gestern. aus diesem grund habe ich auch sofort bemerkt, als es vor tagen auf einmal gar keine freezes mehr gab.

Zitatperfmon meldet hiermit das von 16:08:47 bis 16:08:52 "nichts ging", Du siehst aber im log das kein "Loch", sondern das da Action war und wunderst Dich (ein wenig). Richtig ?
richtig verstanden. das ist aber nicht mein problem, sondern nur eine zusätzliche beobachtung, die mir in dieser auffälligkeit bisher nicht begegnet ist.

Zitatperfmon arbeitet immer "nur" als Indikator dafür das ein beliebiges event oder eine Aktion (zb ein Lichtschalter) xx Sekunden nicht bearbeitet werden kann, hier ca 5,8 Sekunden.
das war und ist mir bekannt. daher benutze ich es auch permanent und habe es als sehr nützliches werkzeug lieben gelernt. vielen dank dafür.

ZitatZusammen wird es aber dann eben spürbar, sogar schmerzhaft ...
das kann ich bei diesen freezes eben nicht feststellen. meine sensible heizungssteuerung ist völlig unbeeindruckt davon.

bisher konnte ich immer bei einer häufung von freezes vermehrte ausfälle der heizungsthermostate feststellen. jetzt zum erstenmal nicht mehr. es scheint so, als würde alles ausgeführt werden, nur der timer von perfmon nicht. aus meiner sicht sprechen also 3 indizien dafür, dass hier etwas anders läuft.

1. aussergewöhnlich viele freezes beim anzeigen einer readingsgroup.
2. diese vielen freezes zeigen ausnahmsweise keine auswirkungen auf den ablauf von fhem.
3. die dauer der gemeldeten verzögerungen liegt teilweise bei werten, die früher nur beim plotten erreicht wurden.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

herrmannj

hmm.., ok. verstanden.

die Informationen insgesamt sind tatsächlich im Augenblick ein wenig widersrpüchlich.

Die funktion von perfmon inkl timer hast Du richtig analysiert. Da passiert kein Hexeenwerk, ein timer wird auf eine Zielzeit (now + 1 Sekunde) gesetzt und im Anschluß wird ausgewertet wie groß die Differenz zwischen target und tastächlichem Aufruf ist. Wenn diese diff > 1000ms beträgt ist das ein Hinweiß das fhem vorher nicht dazu gekommen ist weil es mit anderen Sachen beschäftigt war.

Richtig ebenfalls das delays in dieser Größenordnung einen Einfluß auf HMLAN und co haben sollten.

Korrekt ist es also zu hinterfragen ob die Messmmethode (perfmon) richtig arbeitet wenn diese delays gemeldet werden aber die erwarteten Auswirkungeen auf den HMLAN ausbleiben.

Wenn ich mir das log anschaue sieht es im ersten Augenblick aber konsistent aus, grob geschätzt seh ich da etwa 50 statistics a 100ms im log. Mach die 5 Sekunden ...
Zitat2015.09.01 16:08:46.929 5: statistics my: Notify.261 Notification of 'Wetter.Nord' received. Device not monitored.
2015.09.01 16:08:47.073 5: Triggering myTemp (1 changes)

So wie ich das sehe hast Du evtl einfach Glück das der HMLAN (noch?) nicht zickt.

Aber irgendwas muss sich ja geändert haben wenn diese delays früher nicht da waren. Mit dem patch von Rudi kann das eigentlich nichts zu tun haben. Perfmon (und andere module) waren betroffen weil der ERSTE timer nicht ausgelöst wurde. Da perfmon jeweils im timer den nächsten setzt war da finito.

Readingsgroup und statistics benutze ich nicht. Kannst Du statistics mal probeweise disablen und schauen wie die Zeiteen dann aussehen ? Darüber hinaus scheint es ja eine auch readingsgroup irgendwie reinzuspielen, zumindest solange es angezeigt wird. Da muss ich aber passen

vg
joerg

frank

ZitatKannst Du statistics mal probeweise disablen und schauen wie die Zeiteen dann aussehen ?
gute idee. wie es aussieht, habe ich statistics bereits ende januar disabled.  :)

also statistics enabled => ähnliche reaktion.
altes statistics modul, enabled => ähnliche reaktion.
statistics entfernt => ähnliche reaktion.

mich würde ja mal interessieren an welcher stelle entschieden wird, ob und wann der perfmon timer ausgeführt wird, um die freeze meldungen besser interpretieren zu können. mein verbose=5 log lässt vermuten, dass interne notifies (notifyFN) und externe notifies vorrangig behandelt werden. von filelog gibt es keine hinweise. demnach werden wohl vorzugsweise alle aufgelaufenen events und ebenso vom hmlan empfangene msgs abgearbeitet. erst wenn der "event/io-container" leer ist, werden die wartenden timer bedient.

im augenblick scheint es an den internen notifies der readingsgroup zu liegen, dass der perfmon timer nicht ausgeführt wird. dann muss ich wohl da mal weitersuchen.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

herrmannj

ZitatZitat

    Kannst Du statistics mal probeweise disablen und schauen wie die Zeiteen dann aussehen ?

gute idee. wie es aussieht, habe ich statistics bereits ende januar disabled.  :)
Im log scheint (!) es so dass trotzdem 100ms vom statistic modul (x50) "verbraten" werden.

Den Aufruf perfmon (timer) kaannst Du in der fhem.pl recht gut nachvollziehen.

fhem selber "wartet" in einer loop auf den nächsten Timer ODER irgendeinen input/output.

Kommt jetzt input (zB HMLAN) wird der verarbeitet und das löst events aus die abgearbeitet werden, zb in notify. Erst wenn alles was "an dem input dranhängt" angearbeitet ist wird entweder der timer nachgeholt oder eben wieder gewartet.

Während des Abarbeten des Inputs wird auch auf keinen neuen "Input" regaiert. Der Lichtschalter (zB) muss dann auch warten bis das "vorher" komplett durch ist. Das sind die 5,8 Sekunden die Du siehst

vg
joerg

frank

Zitatfhem selber "wartet" in einer loop auf den nächsten Timer ODER irgendeinen input/output.
das passt aber irgendwie nicht zu dem log. hier mal die entscheidenden stellen. die erste hmlan msg lösste die eventflut aus die den perfmon timer zum warten verurteilte. danach kommen 2 weitere hmlan msgs, die wiederum events auslösen und verarbeitet werden. erst direkt danach meldet sich dann perfmon.

2015.09.01 16:08:46.870 5: HMLAN/RAW: /E83765A,0000,17BA000E,FF,FFB2,71A27083765A1ACE1F00A85A275500005CC60708
...
2015.09.01 16:08:51.199 5: HMLAN/RAW: /E83765A,0000,04E8A664,FF,FFB1,71A27083765A1ACE1F00A85A275500005CC60708
E1DFDA5,0000,04E8A886,FF,FFB9,A586701DFDA500000000DE47
...
2015.09.01 16:08:52.773 5: rh_unreachable: not on any display, don't trigger
2015.09.01 16:08:52.787 1: Perfmon: possible freeze starting at 16:08:47, delay is 5.786
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

herrmannj

doch das passt.

Die timer werden abgearbeitet wenn ALLE msg durch sind, auch die "wartenden". Die neuen HMLAN  msg lagen schon bereit als die erste fertig verarbeitet war. Insofern kann der "Schalter" (hier HMLAN) tatsächlich VOR den timer (perfmon) dran sein.

Vielleicht formuliere ich besser wenn ich sage: perfmon (alle timer) ist dran wenn alles andere durch ist.

Von daher passen die Daten aus dem log dann zur Aussage "fhem war 5 Sekunden mit sich selber beschäftigt", was ja hier der Punkt ist.

Frage wäre jetzt für mich WARUM die komplette Verarbeitung der ersten HMLAN msg von 16:08:46.870 bis 16:08:51.199 dauert und warum die readingsgroup (sichtbar ja/nein) das beeinflußt. Dann fallen mir eben die 100ms pro statistic call auf.

vg
joerg

frank

ZitatDie timer werden abgearbeitet wenn ALLE msg durch sind, auch die "wartenden". Die neuen HMLAN  msg lagen schon bereit als die erste fertig verarbeitet war. Insofern kann der "Schalter" (hier HMLAN) tatsächlich VOR den timer (perfmon) dran sein.
rein theoretisch würde also der perfmon timer "verhungern", wenn zb jede sekunde eine hmlan msg kommt und deren eventkette 2 sekunden verarbeitung benötigt, da vor ende der verarbeitung immer wieder eine neue hmlan msg warten würde.

ZitatFrage wäre jetzt für mich WARUM die komplette Verarbeitung der ersten HMLAN msg von 16:08:46.870 bis 16:08:51.199 dauert und warum die readingsgroup (sichtbar ja/nein) das beeinflußt. Dann fallen mir eben die 100ms pro statistic call auf.
statistics hatte ich jetzt ja schon entfernt und trotzdem keine verbesserungen.

aber mit einer alten readingsgroup.pm vom februar sind die freezes nun verschwunden. ich habe schon fast an meinem erinnerungsvermögen gezweifelt.  :)

dann muss ich wohl mal schauen, ab wann das drama begonnen hat.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

herrmannj

Zitatrein theoretisch würde also der perfmon timer "verhungern", wenn zb jede sekunde eine hmlan msg kommt und deren eventkette 2 sekunden verarbeitung benötigt, da vor ende der verarbeitung immer wieder eine neue hmlan msg warten würde.
Richtig. Fhem insgesamt würde "verhungern", kein Timer würde zum Zug kommen, ACK würden nicht gesendet, etc. Das wäre ein klassicher Fall in dem eine schnellere CPU her muss.

Btw, was auf was für Hardware läuft fhem bei Dir ?

Generell kannst Du schauen ob Du zu viele oder zu generische notify oder regex hast. Nur generller Tip, vielleicht hast Du das ja ohnehin.

Zitataber mit einer alten readingsgroup.pm vom februar sind die freezes nun verschwunden. ich habe schon fast an meinem erinnerungsvermögen gezweifelt.  :)
Na kannst Du beginnen das einzukreisen ;)

vg
joerg



frank

ZitatBtw, was auf was für Hardware läuft fhem bei Dir ?
ich bin immer noch mit fritzbox unterwegs. das ende rückt aber scheinbar immer näher.

# $Id: 33_readingsGroup.pm 8462 2015-04-22 15:22:22Z justme1968 $
das ist die letzte gut laufende version.

vielleicht hat andre eine idee?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

franky08

Wirst wohl nicht umhinkommen über eine andere Plattform nachzudenken, ich war damals auch schnell von der Fritte weg (lag aber an dem "begrenzten" Perl).
Unschlagbar ZBOX nano, kann ich für die Hauptinstanz nur wärmstens empfehlen  :)

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

herrmannj

Zitat von: frank am 02 September 2015, 21:40:09
ich bin immer noch mit fritzbox unterwegs. das ende rückt aber scheinbar immer näher.

# $Id: 33_readingsGroup.pm 8462 2015-04-22 15:22:22Z justme1968 $
das ist die letzte gut laufende version.

vielleicht hat andre eine idee?

Naja, fb ist halt nicht state-of-the-art ;) ~6 Sekunden in Deinem Beispiel sind trotzdem hart.

Hier ist die diff von 6462 und 8761:
http://sourceforge.net/p/fhem/code/8761/tree//trunk/fhem/FHEM/33_readingsGroup.pm?diff=8462

Sind viele Änderungen drin. Muss wohl echt Andre mal schauen.

vg
joerg

frank

ZitatSind viele Änderungen drin.
allerdings, und für mich nichts wirklich gutes dabei.  ;)

die 6 sek sind zwar der absolute ausnahmefall, aber 1,5-2 sek ca. alle 30 sek bei fast jeder readingsänderung sind schon krass. die verarbeitungszeit hat sich vermutlich mindestens verdoppelt.

zur not gibt es ja auch noch "excludeFromUpdate".

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

hier schon mal ein list der readingsgroup

Internals:
   DEF        MeinWetter:<aktuell>,<heute>,<morgen>,fc3_day_of_week,fc4_day_of_week,fc5_day_of_week
MeinWetter:icon,fc1_icon,fc2_icon,fc3_icon,fc4_icon,fc5_icon
MeinWetter:wind_condition,fc1_high_c,fc2_high_c,fc3_high_c,fc4_high_c,fc5_high_c
MeinWetter:pressure,fc1_low_c,fc2_low_c,fc3_low_c,fc4_low_c,fc5_low_c
<Raum>,<Hrel>,<Tist>,<Tdew>,<Habs>,<Htrend>,<Tsoll>,<Mode>,<Tnight>,<Tday>,<TC>,<Vist>,<Vctrl>,<Vstat>,<Vsoll>,<Verr>,<VD>
Broetje:humidity,ToutIst,dewpoint,humidityAbsolut
Wetter.(Nord|Sued):humidity,temperature,dewpoint,absFeuchte,pressure,luminosity
Thermostat.*_Weather:humidity,measured-temp,dewpoint,absFeuchte,humidityAbsolutTrend,desired-temp@{$DEVICE=~s/_Weather//g;$DEVICE."_Climate"},controlMode@{$DEVICE=~s/_Weather//g;$DEVICE."_Climate"},night-temp@{$DEVICE=~s/_Weather//g;$DEVICE."_Climate"},day-temp@{$DEVICE=~s/_Weather//g;$DEVICE."_Climate"},battery@{$DEVICE=~s/_Weather//g;$DEVICE.""},ValvePosition@{valveOfDevice($DEVICE)},valveCtrl@{valveCtrlOfDevice($DEVICE)},operState@{valveOfDevice($DEVICE)},ValveDesired@{valveOfDevice($DEVICE)},R-valveErrorPos@{valveOfDevice($DEVICE)},battery@{valveOfDevice($DEVICE)}
   NAME       myTemp
   NR         423
   NTFY_ORDER 50-myTemp
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     Broetje    1
     MeinWetter 1
     Thermostat.AZ_Weather 1
     Thermostat.Bad.OG_Weather 1
     Thermostat.Bad_Weather 1
     Thermostat.GZ_Weather 1
     Thermostat.Keller_Weather 1
     Thermostat.Kueche_Weather 1
     Thermostat.OZ_Weather 1
     Thermostat.SZ_Weather 1
     Thermostat.WZ_Weather 1
     Wetter.Nord 1
     Wetter.Sued 1
   Content2:
     Thermostat.AZ 1
     Thermostat.AZ_Climate 1
     Thermostat.Bad 1
     Thermostat.Bad.OG 1
     Thermostat.Bad.OG_Climate 1
     Thermostat.Bad_Climate 1
     Thermostat.GZ 1
     Thermostat.GZ_Climate 1
     Thermostat.Keller 1
     Thermostat.Keller_Climate 1
     Thermostat.Kueche 1
     Thermostat.Kueche_Climate 1
     Thermostat.OZ 1
     Thermostat.OZ_Climate 1
     Thermostat.SZ 1
     Thermostat.SZ_Climate 1
     Thermostat.WZ 1
     Thermostat.WZ_Climate 1
     Ventil.AZ.Nord 1
     Ventil.Bad 1
     Ventil.Kueche 1
     Ventil.SZ  1
     Ventil.WZ  1
     VentilControler.AZ.Nord_Btn1 1
     VentilControler.Bad_Btn1 1
     VentilControler.Kueche_Btn1 1
     VentilControler.SZ_Btn1 1
     VentilControler.WZ_Btn1 1
   DEVICES:
     ARRAY(0x1f03650)
     ARRAY(0x1f0bc20)
     ARRAY(0x1cd4fe8)
     ARRAY(0x1f07588)
     ARRAY(0x1d41120)
     ARRAY(0x1f02dd0)
     ARRAY(0x17960b8)
     ARRAY(0x1f2d428)
     ARRAY(0x1ef6b20)
     ARRAY(0x1cd0d98)
     ARRAY(0x1f52388)
     ARRAY(0x1f368f0)
     ARRAY(0x1f51808)
     ARRAY(0x1d4c960)
     ARRAY(0x1f0b720)
     ARRAY(0x1d9f6f8)
     ARRAY(0x1cd7ac0)
   DEVICES2:
     ARRAY(0x1f03650)
     ARRAY(0x1f0bc20)
     ARRAY(0x1cd4fe8)
     ARRAY(0x1f07588)
     ARRAY(0x1d41120)
     ARRAY(0x1f02dd0)
     ARRAY(0x17960b8)
     ARRAY(0x1f2d428)
     ARRAY(0x1ef6b20)
     ARRAY(0x1cd0d98)
     ARRAY(0x1f52388)
     ARRAY(0x1f368f0)
     ARRAY(0x1f51808)
     ARRAY(0x1d4c960)
     ARRAY(0x1f0b720)
     ARRAY(0x1d9f6f8)
     ARRAY(0x1cd7ac0)
     ARRAY(0x1f07438)
     ARRAY(0x1f524a8)
     ARRAY(0x1cd5908)
     ARRAY(0x1cf9228)
     ARRAY(0x1f052a8)
     ARRAY(0x1da7fe0)
     ARRAY(0x1f36530)
     ARRAY(0x1da6768)
     ARRAY(0x1cd7b00)
     ARRAY(0x1f05cb8)
     ARRAY(0x1f06bc8)
     ARRAY(0x1da6598)
     ARRAY(0x1d76318)
     ARRAY(0x1f51d88)
     ARRAY(0x1f3eee8)
     ARRAY(0x1da6308)
     ARRAY(0x1da6588)
     ARRAY(0x1da6888)
     ARRAY(0x1b38ad8)
     ARRAY(0x1ce04f8)
     ARRAY(0x1f42c08)
     ARRAY(0x1ce7848)
     ARRAY(0x1d4c480)
     ARRAY(0x1f07678)
     ARRAY(0x1f05c18)
     ARRAY(0x1ef5c30)
     ARRAY(0x1f0b200)
     ARRAY(0x1f070c8)
     ARRAY(0x1d9f7a8)
     ARRAY(0x1ce73b8)
     ARRAY(0x1da69d8)
     ARRAY(0x1d76248)
     ARRAY(0x1cd2348)
     ARRAY(0x1da5e08)
     ARRAY(0x1cc3198)
     ARRAY(0x175ac20)
     ARRAY(0x1d73ab0)
     ARRAY(0x1da6418)
     ARRAY(0x1cc9238)
     ARRAY(0x1f06f68)
     ARRAY(0x1f0bc80)
     ARRAY(0x1f077b8)
     ARRAY(0x1ef13c8)
     ARRAY(0x1f0ba00)
     ARRAY(0x1b3a078)
     ARRAY(0x1f51db8)
     ARRAY(0x1f36a50)
     ARRAY(0x1cd1d68)
     ARRAY(0x1da05a8)
     ARRAY(0x1f3ee28)
     ARRAY(0x1f07738)
     ARRAY(0x1f3a520)
     ARRAY(0x1efdfe0)
     ARRAY(0x1cdd2d8)
     ARRAY(0x1cefca0)
     ARRAY(0x1d9fd78)
     ARRAY(0x1f36820)
     ARRAY(0x1d309d8)
     ARRAY(0x1ce9a20)
     ARRAY(0x1f36510)
     ARRAY(0x1f36480)
     ARRAY(0x1d30b78)
     ARRAY(0x175a9b0)
     ARRAY(0x1f521f8)
     ARRAY(0x1f02c40)
     ARRAY(0x1d9fb98)
     ARRAY(0x1cdd5e8)
     ARRAY(0x1f076d8)
     ARRAY(0x1d9fa38)
     ARRAY(0x1ce97f0)
     ARRAY(0x1f3edd8)
     ARRAY(0x1ef3200)
     ARRAY(0x1efe490)
     ARRAY(0x1d9fa58)
     ARRAY(0x1da8070)
   Fhem:
     lastDefChange 2
     last_update 1441214573.17073
   Helper:
     DEF
     nameStyle  { 'style="color:yellow"' }
     valueFormat {'battery'=>'{[split(" ", $VALUE)]->[0]}','temperature' => "%0.1f °C",'measured-temp' => "%0.1f °C",'dewpoint' => "%0.1f °C", 'fc1_high_c' => "%.1f °C", 'fc1_low_c' => "%.1f °C", 'fc2_high_c' => "%.1f °C", 'fc2_low_c' => "%.1f °C", 'fc3_high_c' => "%.1f °C", 'fc3_low_c' => "%.1f °C", 'fc4_high_c' => "%.1f °C", 'fc4_low_c' => "%.1f °C", 'fc5_high_c' => "%.1f °C", 'fc5_low_c' => "%.1f °C", 'ToutIst' => "%.1f °C",'desired-temp' => '{sprintf("%.1f °C",[split(" ", $VALUE)]->[0])}','night-temp' => '{sprintf("%.1f °C",[split(" ", $VALUE)]->[0])}', 'day-temp' => '{sprintf("%.1f °C",[split(" ", $VALUE)]->[0])}', 'humidity' => "%.0f %%",'absFeuchte' => "%0.1f g/m³",'humidityAbsolut' => "%0.1f g/m³",'humidityAbsolut0' => "%0.1f g/m³",'ValvePosition'=>'{sprintf("%02d",[split(" ",$VALUE)]->[0])." %%"}','ValveDesired'=>'{sprintf("%02d",[split(" ",$VALUE)]->[0])." %%"}','R-valveErrorPos'=>'{sprintf("%02d",[split(" ",$VALUE)]->[0])." %%"}'}
     valueStyle { if($READING eq "humidity") {return "style=\"color:#".substr(pahColor(45,60,75,$VALUE,[255,255,0, 127,255,0, 0,255,0, 0,255,127, 0,196,255],0),0,6)."\""} elsif($READING ~~ ["temperature","measured-temp","ToutIst"] && $VALUE < 15) {return "style=\"color:#".substr(pahColor(0,12,15,$VALUE,[0,196,255, 0,225,127, 0,255,0, 127,255,0, 255,255,0],0),0,6)."\""} elsif($READING ~~ ["temperature","measured-temp","ToutIst"] && $VALUE >= 15) {return "style=\"color:#".substr(pahColor(15,21,30,$VALUE,[255,255,0, 255,127,0, 225,0,0, 225,0,112, 225,0,225],0),0,6)."\""} elsif($READING eq "dewpoint") {  if(ReadingsVal($DEVICE,"measured-temp","") > ($VALUE + 3)){'style="color:lightgreen"'}  elsif((ReadingsVal($DEVICE,"measured-temp","") > ($VALUE+1))&&(ReadingsVal($DEVICE,"measured-temp","") <= ($VALUE+3))){'style="color:orange"'}  else{'style="color:orangered"'} }  elsif($READING =~ m/day_of/){'style="color:yellow"'}  elsif($READING eq "humidityAbsolutTrend") {  if($VALUE ~~ ["↑↑","↑↘","↘↑","→↗","↗→"]){'style="color:dodgerblue"'}  elsif($VALUE ~~ ["→→","↗↘","↘↗"]){'style="color:lightgreen"'}  elsif($VALUE ~~ ["↓↓","↓↗","↗↓","↘→","→↘"]){'style="color:yellow"'} }  elsif($READING eq "ValvePosition") { my $myRoom = $1 if($DEVICE =~ m/Ventil.(.*)/);; if(ReadingsVal("VentilControler.".$myRoom."_Btn1","valveCtrl","") eq "lost"){return 'style="color:orangered"'} elsif(ReadingsVal("VentilControler.".$myRoom."_Btn1","valveCtrl","") =~ m/miss/){return 'style="color:orange"'} elsif(ReadingsVal("VentilControler.".$myRoom."_Btn1","valveCtrl","") eq "ok"){return 'style="color:lightgreen"'} } elsif($READING eq "valveCtrl") { my $myRoom = $1 if($DEVICE =~ m/VentilControler.(.*)_Btn1/);; my $myValve = "Ventil.".$myRoom;; my $myValvePos = ReadingsVal($myValve,"ValvePosition",0);; fhem("trigger $myValve ValvePosition: $myValvePos");; if($VALUE eq "lost"){return 'style="color:orangered"'} elsif($VALUE =~ m/miss/){return 'style="color:orange"'} elsif($VALUE eq "ok"){return 'style="color:lightgreen"'} } }
     Mapping:
       Broetje    Wetter
       MeinWetter
       Thermostat.AZ EG_Arbeitszimmer
       Thermostat.Bad EG_Bad
       Thermostat.Bad.OG OG_Bad
       Thermostat.GZ OG_Gästezimmer
       Thermostat.Keller UG_Keller
       Thermostat.Kueche EG_Küche
       Thermostat.OZ EG_Kaminzimmer
       Thermostat.SZ OG_Schlafzimmer
       Thermostat.WZ EG_Wohnzimmer
       controlMode
       desired-temp
     Valuecolumn:
       desired-temp 6
       fc1_high_c 2
       fc1_low_c  2
       humidityAbsolut 4
     Valueicon:
       battery.low batterie@red
       battery.ok batterie@lightgreen
       fc1_icon   %VALUE
       fc2_icon   %VALUE
       fc3_icon   %VALUE
       fc4_icon   %VALUE
       fc5_icon   %VALUE
       icon       %VALUE
Attributes:
   mapping    { 'Broetje' => 'Wetter','MeinWetter' => '','Thermostat.AZ' => 'EG_Arbeitszimmer','Thermostat.Keller' => 'UG_Keller','Thermostat.SZ' => 'OG_Schlafzimmer','Thermostat.WZ'=>'EG_Wohnzimmer','Thermostat.Kueche' => 'EG_Küche','Thermostat.GZ' => 'OG_Gästezimmer','Thermostat.Bad' => 'EG_Bad','Thermostat.Bad.OG' => 'OG_Bad','Thermostat.OZ' => 'EG_Kaminzimmer','desired-temp' => '','controlMode' => ''}
   nameStyle  { 'style="color:yellow"' }
   notime     1
   room       01_INFO
   valueColumn {'fc1_high_c' => 2,'fc1_low_c' => 2,'humidityAbsolut' => 4,'desired-temp' => 6}
   valueFormat {'battery'=>'{[split(" ", $VALUE)]->[0]}','temperature' => "%0.1f °C",'measured-temp' => "%0.1f °C",'dewpoint' => "%0.1f °C", 'fc1_high_c' => "%.1f °C", 'fc1_low_c' => "%.1f °C", 'fc2_high_c' => "%.1f °C", 'fc2_low_c' => "%.1f °C", 'fc3_high_c' => "%.1f °C", 'fc3_low_c' => "%.1f °C", 'fc4_high_c' => "%.1f °C", 'fc4_low_c' => "%.1f °C", 'fc5_high_c' => "%.1f °C", 'fc5_low_c' => "%.1f °C", 'ToutIst' => "%.1f °C",'desired-temp' => '{sprintf("%.1f °C",[split(" ", $VALUE)]->[0])}','night-temp' => '{sprintf("%.1f °C",[split(" ", $VALUE)]->[0])}', 'day-temp' => '{sprintf("%.1f °C",[split(" ", $VALUE)]->[0])}', 'humidity' => "%.0f %%",'absFeuchte' => "%0.1f g/m³",'humidityAbsolut' => "%0.1f g/m³",'humidityAbsolut0' => "%0.1f g/m³",'ValvePosition'=>'{sprintf("%02d",[split(" ",$VALUE)]->[0])." %%"}','ValveDesired'=>'{sprintf("%02d",[split(" ",$VALUE)]->[0])." %%"}','R-valveErrorPos'=>'{sprintf("%02d",[split(" ",$VALUE)]->[0])." %%"}'}
   valueIcon  {'battery.ok' => 'batterie@lightgreen','battery.low' => 'batterie@red','icon' => '%VALUE','fc1_icon' => '%VALUE','fc2_icon' => '%VALUE','fc3_icon' => '%VALUE','fc4_icon' => '%VALUE','fc5_icon' => '%VALUE'}
   valueStyle { if($READING eq "humidity") {return "style=\"color:#".substr(pahColor(45,60,75,$VALUE,[255,255,0, 127,255,0, 0,255,0, 0,255,127, 0,196,255],0),0,6)."\""} elsif($READING ~~ ["temperature","measured-temp","ToutIst"] && $VALUE < 15) {return "style=\"color:#".substr(pahColor(0,12,15,$VALUE,[0,196,255, 0,225,127, 0,255,0, 127,255,0, 255,255,0],0),0,6)."\""} elsif($READING ~~ ["temperature","measured-temp","ToutIst"] && $VALUE >= 15) {return "style=\"color:#".substr(pahColor(15,21,30,$VALUE,[255,255,0, 255,127,0, 225,0,0, 225,0,112, 225,0,225],0),0,6)."\""} elsif($READING eq "dewpoint") {  if(ReadingsVal($DEVICE,"measured-temp","") > ($VALUE + 3)){'style="color:lightgreen"'}  elsif((ReadingsVal($DEVICE,"measured-temp","") > ($VALUE+1))&&(ReadingsVal($DEVICE,"measured-temp","") <= ($VALUE+3))){'style="color:orange"'}  else{'style="color:orangered"'} }  elsif($READING =~ m/day_of/){'style="color:yellow"'}  elsif($READING eq "humidityAbsolutTrend") {  if($VALUE ~~ ["↑↑","↑↘","↘↑","→↗","↗→"]){'style="color:dodgerblue"'}  elsif($VALUE ~~ ["→→","↗↘","↘↗"]){'style="color:lightgreen"'}  elsif($VALUE ~~ ["↓↓","↓↗","↗↓","↘→","→↘"]){'style="color:yellow"'} }  elsif($READING eq "ValvePosition") { my $myRoom = $1 if($DEVICE =~ m/Ventil.(.*)/);; if(ReadingsVal("VentilControler.".$myRoom."_Btn1","valveCtrl","") eq "lost"){return 'style="color:orangered"'} elsif(ReadingsVal("VentilControler.".$myRoom."_Btn1","valveCtrl","") =~ m/miss/){return 'style="color:orange"'} elsif(ReadingsVal("VentilControler.".$myRoom."_Btn1","valveCtrl","") eq "ok"){return 'style="color:lightgreen"'} } elsif($READING eq "valveCtrl") { my $myRoom = $1 if($DEVICE =~ m/VentilControler.(.*)_Btn1/);; my $myValve = "Ventil.".$myRoom;; my $myValvePos = ReadingsVal($myValve,"ValvePosition",0);; fhem("trigger $myValve ValvePosition: $myValvePos");; if($VALUE eq "lost"){return 'style="color:orangered"'} elsif($VALUE =~ m/miss/){return 'style="color:orange"'} elsif($VALUE eq "ok"){return 'style="color:lightgreen"'} } }
   verbose    5
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html