Hauptmenü

Neueste Beiträge

#1
Automatisierung / Verketten von FHEM Befehlen - ...
Letzter Beitrag von RalfRog - 11 Dezember 2025, 23:39:16
Hallo
Ich habe zur Verkettung eine Frage/unerklärliches Verhalten. Bei mir funktioniert zwar alles (zufällig?) seit Langem, aber ich bin über leicht merkwürdige Logeinträge gestolpert.

Ich habe versucht es in einen einfachen Testfall herunterzubrechen, bei dem nur die Reihenfolge der Verkettung geändert wird.

  • In der Befehlszeile von FHEMWEB funktionieren folgende Kommandos (Perl-Modus) erwartungsgemäß und ohne Auffälligkeiten.
Befehlszeile:
{fhem("msg push Logtest;;set LampeHighboard off")}

Log:
2025.12.11 22:40:08.913 3: msg globalMsg: ID=1765489208.90265.1 TYPE=push ROUTE=telegram STATUS=OK PRIORITY=0 TITLE='' MSG='Logtest'
2025.12.11 22:40:08.915 3: cubeCUL_stk2 IT_set: LampeHighboard off
  Ebenfalls wenn die Reihenfolge der Kommandos gedreht wird:
Befehlszeile:
{fhem("set LampeHighboard on;;msg push Logtest")}

Log:
2025.12.11 22:39:46.093 3: cubeCUL_stk2 IT_set: LampeHighboard on
2025.12.11 22:39:46.432 3: msg globalMsg: ID=1765489186.42412.1 TYPE=push ROUTE=telegram STATUS=OK PRIORITY=0 TITLE='' MSG='Logtest'



  • In einem "at" oder "notify" funktioniert aber nur die obere Reihenfolge   (komplette Lists der Devices am Ende).
das at:     DEF   *03:00 {fhem("msg push Logtest;;set LampeHighboard off")}
oder
das notify: DEF   LampeTerasseStand:on {fhem("msg push Logtest;;set LampeHighboard off")}

Log:
2025.12.11 23:02:40.074 3: cubeCUL_stk2 IT_set: LampeHighboard off
2025.12.11 23:02:40.404 3: msg globalMsg: ID=1765490560.06424.1 TYPE=push ROUTE=telegram STATUS=OK PRIORITY=0 TITLE='' MSG='Logtest;set LampeHighboard off'
=> Besonderheit (und das war mir aufgefallen) ist im Log:   MSG='Logtest;set LampeHighboard off'

   anderherum gibt es eine Fehlermeldug im Log
das at:     DEF   *03:00 {fhem("set LampeHighboard off;;msg push Logtest")}

Log:
2025.12.11 23:13:25.295 3: set LampeHighboard off;;msg push Logtest : Unknown argument off;msg, choose one of off:noArg on:noArg  toggle off-till off-for-timer on-till-overnight intervals off-till-overnight on-for-timer on-till blink
2025.12.11 23:13:25.296 3: SaveDB_test: Unknown argument off;msg, choose one of off:noArg on:noArg  toggle off-till off-for-timer on-till-overnight intervals off-till-overnight on-for-timer on-till blink
das notify:  LampeTerasseStand:on {fhem("set LampeHighboard off;;msg push Logtest")}

Log:
2025.12.11 23:18:48.611 3: set LampeHighboard off;;msg push Logtest : Unknown argument off;msg, choose one of off:noArg on:noArg  blink off-till-overnight intervals on-till on-for-timer toggle off-for-timer off-till on-till-overnight
2025.12.11 23:18:48.612 3: LampeHighboard_notify_1 return value: Unknown argument off;msg, choose one of off:noArg on:noArg  blink off-till-overnight intervals on-till on-for-timer toggle off-for-timer off-till on-till-overnight




Hier die vollständigen Lists:
define SaveDB_test at *03:00 {\
fhem("set LampeHighboard off;;;;msg push Logtest")\
}
attr SaveDB_test room Dbase
#   CFGFN     
#   COMMAND    {
#fhem("set LampeHighboard off;;msg push Logtest")
#}
#   DEF        *03:00 {
#fhem("set LampeHighboard off;;msg push Logtest")
#}
#   FUUID      693b227f-f33f-76ac-2156-d46975aabc5fad3d
#   NAME       SaveDB_test
#   NR         332
#   PERIODIC   yes
#   RELATIVE   no
#   REP        -1
#   STATE      Next: 03:00:00
#   TIMESPEC   03:00
#   TRIGGERTIME 1765504800
#   TRIGGERTIME_FMT 2025-12-12 03:00:00
#   TYPE       at
#   eventCount 14
#   READINGS:
#     2025-12-11 23:11:51   state           Next: 03:00:00
#
setstate SaveDB_test Next: 03:00:00
setstate SaveDB_test 2025-12-11 23:11:51 state Next: 03:00:00
define LampeHighboard_notify_1 notify LampeTerasseStand:on {fhem("set LampeHighboard off;;;;msg push Logtest")}
#   CFGFN     
#   DEF        LampeTerasseStand:on {fhem("set LampeHighboard off;;msg push Logtest")}
#   FUUID      693b2a00-f33f-76ac-8025-e50583d743d45439
#   NAME       LampeHighboard_notify_1
#   NOTIFYDEV  LampeTerasseStand
#   NR         333
#   NTFY_ORDER 50-LampeHighboard_notify_1
#   REGEXP     LampeTerasseStand:on
#   STATE      2025-12-11 23:18:48
#   TRIGGERTIME 1765491528.60314
#   TYPE       notify
#   eventCount 6
#   READINGS:
#     2025-12-11 23:18:23   state           active
#     2025-12-11 23:18:48   triggeredByDev  LampeTerasseStand
#     2025-12-11 23:18:48   triggeredByEvent on
#
setstate LampeHighboard_notify_1 2025-12-11 23:18:48
setstate LampeHighboard_notify_1 2025-12-11 23:18:23 state active
setstate LampeHighboard_notify_1 2025-12-11 23:18:48 triggeredByDev LampeTerasseStand
setstate LampeHighboard_notify_1 2025-12-11 23:18:48 triggeredByEvent on

#2
FHEM Code changes / Revision 30619: 36_Shelly.pm: ...
Letzter Beitrag von System - 11 Dezember 2025, 23:00:52
Revision 30619: 36_Shelly.pm: add Shelly 1L/2L Gen3

36_Shelly.pm: add Shelly 1L/2L Gen3

Source: Revision 30619: 36_Shelly.pm: add Shelly 1L/2L Gen3
#3
Sonstige Systeme / Aw: Entwicklungs-Thread Modul ...
Letzter Beitrag von Starkstrombastler - 11 Dezember 2025, 22:40:18
Zitat von: derHeimwerker am 09 Dezember 2025, 21:56:37Wie kann ich da unterstützen?
indem du die Definition eines entsprechenden readingsProxy-Devices postest.
#4
Sonstige Systeme / Aw: Support-Thread Modul 36_Sh...
Letzter Beitrag von Starkstrombastler - 11 Dezember 2025, 22:24:53
Zitat von: tweety-rt am 11 Dezember 2025, 15:05:22ich habe einen Shelly1lg3 angelegt. Bekomme den Fehler "error in command: id or component not found"
Der Shelly 1L Gen 3 ist bisher noch nicht im Modul hinterlegt.
Das Modul bietet dann alle möglichen model zur Auswahl an. Du solltest hier aber
attr K_Licht model shellyplus1wählen. Damit wird wenigstens einer der beiden Eingänge abgebildet.
Mit dem shelly1L bist du in der 1.Generation, und die hat ganz andere Befehle.
Die Gen2+ sind in (nur) in Teilen rückwärtskompatibel, und deswegen hat es zumindest teilweise funktioniert.

Erklär doch mal, was es mit den beiden Eingängen auf sich hat.
#5
Sonstige Systeme / Aw: fhempy: tuya (lokal)
Letzter Beitrag von frank_41 - 11 Dezember 2025, 22:23:32
Hallo fhem Leute,
habe mich auch mal an tuya probiert. Ich habe einen Wifi Thermostat von Blitzwolf BW-TRV16. Der läuft auch mit der Tuya App und ich habe
mir eine Tuya Developer Account eingerichtet. fhempy scheint die Daten auch korrekt von der Cloud zu holen.
Wenn ich den Thermostat aber anlege (mit korrekter IP) bekomme ich immer:

ERROR OPENING SOCKET!!!192.168.178.63

Mir scheint fhempy kriegt keinen Zugriff ?? Woran kann das liegen ?


Internals:
   DEF        tuya mdkqafv3dxxxxxxx bfbf2383b160xxxxxxxxx 192.168.178.63 3.3 v4dtfyxxxxxxxxxxxxxx c3864d2523xxxxxxxxxxxxxxxxxxxxxx
   DEVICEID   bfbf2383b160xxxxxxxxx
   FHEMPYTYPE tuya
   FUUID      693b1748-f33f-8841-098c-7f90c22766f73f34
   IODev      fhempy_local
   NAME       tuya_local_bfbf2383b160xxxxxxxxx
   NR         611
   PYTHONTYPE tuya
   STATE      Initializing...
   TYPE       fhempy
   eventCount 1
   READINGS:
     2025-12-11 20:11:42   active_time     1765376439
     2025-12-11 20:11:42   biz_type        0
     2025-12-11 20:11:42   category        wk
     2025-12-11 20:11:42   create_time     1765361816
     2025-12-11 20:11:42   icon            smart/icon/ay1506337792739cXrIR/a8d8220d497fc5f4d06fcd5d79c639b8.jpg
     2025-12-11 20:11:42   id              bfbf2383b160xxxxxxxxx
     2025-12-11 20:11:42   ip              77.23.71.231
     2025-12-11 20:11:42   lat             52.28
     2025-12-11 20:11:42   local_key       x*UHZYxxxxxxxxxx
     2025-12-11 20:11:42   lon             10.54
     2025-12-11 20:11:42   model           BW-TRV16
     2025-12-11 20:11:42   name            WiFi Thermostat Radiator Vavle 2
     2025-12-11 20:11:45   online          0
     2025-12-11 20:11:42   owner_id        260067294
     2025-12-11 20:11:42   product_id      mdkqafv3dxxxxxxx
     2025-12-11 20:11:42   product_name    WiFi Thermostat Radiator Vavle
     2025-12-11 21:27:51   state           Initializing...
     2025-12-11 20:11:42   sub             0
     2025-12-11 20:11:42   time_zone       +01:00
     2025-12-11 20:11:42   uid             eu176235xxxxxxxxxxxx
     2025-12-11 20:11:42   update_time     1765455575
     2025-12-11 20:11:42   uuid            305e2d23187bd145
   args:
     tuya_local_bfbf2383b160xxxxxxxxx
     fhempy
     tuya
     mdkqafv3dxxxxxxx
     bfbf2383b160xxxxxxxxx
     192.168.178.63
     3.3
     v4dtfyxxxxxxxxxxxxxx
     c3864d2523xxxxxxxxxxxxxxxxxxxxxx
   argsh:
Attributes:
   alias      WiFi Thermostat Radiator Vavle 2
   group      tuya
   localkey   x*UHZYxxxxxxxxxx
   room       fhempy
   tuya_spec_functions [{'code': 'switch', 'dp_id': 1, 'type': 'Boolean', 'values': {}, 'desc': 'switch'}, {'code': 'mode', 'dp_id': 2, 'type': 'Enum', 'values': {'range': ['auto']}, 'desc': 'mode'}, {'code': 'temp_set', 'dp_id': 3, 'type': 'Integer', 'values': {'unit': '℃', 'min': 50, 'max': 350, 'scale': 1, 'step': 5}, 'desc': 'temp set'}, {'code': 'temp_correction', 'dp_id': 7, 'type': 'Integer', 'values': {'unit': '℃', 'min': -99, 'max': 99, 'scale': 1, 'step': 1}, 'desc': 'temp correction'}, {'code': 'upper_temp', 'dp_id': 10, 'type': 'Integer', 'values': {'unit': '℃', 'min': 150, 'max': 350, 'scale': 1, 'step': 5}, 'desc': 'upper temp'}, {'code': 'lower_temp', 'dp_id': 11, 'type': 'Integer', 'values': {'unit': '℃', 'min': 50, 'max': 140, 'scale': 1, 'step': 5}, 'desc': 'lower temp'}, {'code': 'child_lock', 'dp_id': 17, 'type': 'Boolean', 'values': {}, 'desc': 'child lock'}, {'code': 'frost', 'dp_id': 20, 'type': 'Boolean', 'values': {}, 'desc': 'frost'}, {'code': 'factory_reset', 'dp_id': 103, 'type': 'Boolean', 'values': {}, 'desc': 'factory reset'}, {'code': 'work_days', 'dp_id': 104, 'type': 'Enum', 'values': {'range': ['5_2', '6_1', '7']}, 'desc': 'work days'}]
   tuya_spec_status [{'code': 'switch', 'dp_id': 1, 'type': 'Boolean', 'values': {}}, {'code': 'mode', 'dp_id': 2, 'type': 'Enum', 'values': {'range': ['auto']}}, {'code': 'temp_set', 'dp_id': 3, 'type': 'Integer', 'values': {'unit': '℃', 'min': 50, 'max': 350, 'scale': 1, 'step': 5}}, {'code': 'temp_current', 'dp_id': 4, 'type': 'Integer', 'values': {'unit': '℃', 'min': 0, 'max': 800, 'scale': 1, 'step': 1}}, {'code': 'temp_correction', 'dp_id': 7, 'type': 'Integer', 'values': {'unit': '℃', 'min': -99, 'max': 99, 'scale': 1, 'step': 1}}, {'code': 'fault', 'dp_id': 9, 'type': 'Bitmap', 'values': {'label': ['battery_temp_fault']}}, {'code': 'upper_temp', 'dp_id': 10, 'type': 'Integer', 'values': {'unit': '℃', 'min': 150, 'max': 350, 'scale': 1, 'step': 5}}, {'code': 'lower_temp', 'dp_id': 11, 'type': 'Integer', 'values': {'unit': '℃', 'min': 50, 'max': 140, 'scale': 1, 'step': 5}}, {'code': 'battery_percentage', 'dp_id': 16, 'type': 'Integer', 'values': {'unit': '%', 'min': 0, 'max': 100, 'scale': 0, 'step': 1}}, {'code': 'child_lock', 'dp_id': 17, 'type': 'Boolean', 'values': {}}, {'code': 'frost', 'dp_id': 20, 'type': 'Boolean', 'values': {}}, {'code': 'factory_reset', 'dp_id': 103, 'type': 'Boolean', 'values': {}}, {'code': 'work_days', 'dp_id': 104, 'type': 'Enum', 'values': {'range': ['5_2', '6_1', '7']}}]
   verbose    5
2025-12-11 22:06:24,335 - DEBUG    - fhempy.lib.fhem: <<< 30576647: {'awaitId': 30576647, 'NAME': 'tuya_local_bfbfxxxxxxxxxxxxx7ckrf', 'msgtype': 'command', 'command': "AttrVal('tuya_local_bfbfxxxxxxxxxxxxx7ckrf', 'tuya_spec_status', '[]')"}
2025-12-11 22:06:24,336 - DEBUG    - fhempy.lib.fhem: >>> 30576647 1.30ms: {'result': "[{'code': 'switch', 'dp_id': 1, 'type': 'Boolean', 'values': {}}, {'code': 'mode', 'dp_id': 2, 'type': 'Enum', 'values': {'range': ['auto']}}, {'code': 'temp_set', 'dp_id': 3, 'type': 'Integer', 'values': {'unit': '℃', 'min': 50, 'max': 350, 'scale': 1, 'step': 5}}, {'code': 'temp_current', 'dp_id': 4, 'type': 'Integer', 'values': {'unit': '℃', 'min': 0, 'max': 800, 'scale': 1, 'step': 1}}, {'code': 'temp_correction', 'dp_id': 7, 'type': 'Integer', 'values': {'unit': '℃', 'min': -99, 'max': 99, 'scale': 1, 'step': 1}}, {'code': 'fault', 'dp_id': 9, 'type': 'Bitmap', 'values': {'label': ['battery_temp_fault']}}, {'code': 'upper_temp', 'dp_id': 10, 'type': 'Integer', 'values': {'unit': '℃', 'min': 150, 'max': 350, 'scale': 1, 'step': 5}}, {'code': 'lower_temp', 'dp_id': 11, 'type': 'Integer', 'values': {'unit': '℃', 'min': 50, 'max': 140, 'scale': 1, 'step': 5}}, {'code': 'battery_percentage', 'dp_id': 16, 'type': 'Integer', 'values': {'unit': '%', 'min': 0, 'max': 100, 'scale': 0, 'step': 1}}, {'code': 'child_lock', 'dp_id': 17, 'type': 'Boolean', 'values': {}}, {'code': 'frost', 'dp_id': 20, 'type': 'Boolean', 'values': {}}, {'code': 'factory_reset', 'dp_id': 103, 'type': 'Boolean', 'values': {}}, {'code': 'work_days', 'dp_id': 104, 'type': 'Enum', 'values': {'range': ['5_2', '6_1', '7']}}]", 'error': 0, 'awaitId': 30576647}
2025-12-11 22:06:24,338 - DEBUG    - fhempy.lib.fhem: <<< 21070368: {'awaitId': 21070368, 'NAME': 'tuya_local_bfbfxxxxxxxxxxxxx7ckrf', 'msgtype': 'command', 'command': "ReadingsVal('tuya_local_bfbfxxxxxxxxxxxxx7ckrf', 'category', '')"}
2025-12-11 22:06:24,339 - DEBUG    - fhempy.lib.fhem: >>> 21070368 1.09ms: {'error': 0, 'result': 'wk', 'awaitId': 21070368}
2025-12-11 22:06:27,414 - DEBUG    - aiotinytuya.core: [bfbfxxxxxxxxxxxxx7ckrf] ERROR OPENING SOCKET!!!192.168.178.63
2025-12-11 22:06:27,415 - DEBUG    - fhempy.lib.fhem: <<< 13193717: {'awaitId': 13193717, 'NAME': 'tuya_local_bfbfxxxxxxxxxxxxx7ckrf', 'msgtype': 'command', 'command': "readingsBeginUpdate($defs{'tuya_local_bfbfxxxxxxxxxxxxx7ckrf'});;readingsBulkUpdateIfChanged($defs{'tuya_local_bfbfxxxxxxxxxxxxx7ckrf'},'online','0');;readingsEndUpdate($defs{'tuya_local_bfbfxxxxxxxxxxxxx7ckrf'},1);;"}
2025-12-11 22:06:27,417 - DEBUG    - fhempy.lib.fhem: >>> 13193717 1.82ms: {'result': None, 'error': 0, 'awaitId': 13193717}
2025-12-11 22:06:27,418 - ERROR    - tuya_local_bfbfxxxxxxxxxxxxx7ckrf: Failed to connect to device
Traceback (most recent call last):
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/tuya/tuya.py", line 563, in setup_connection
    self._connected_device = await asyncio.wait_for(connect_fct, timeout=15)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/tasks.py", line 479, in wait_for
    return fut.result()
           ^^^^^^^^^^^^
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/aiotinytuya/__init__.py", line 206, in connect
    await device.start_socket()
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/aiotinytuya/core.py", line 917, in start_socket
    raise ex
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/aiotinytuya/core.py", line 894, in start_socket
    self.reader, self.writer = await asyncio.open_connection(
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/streams.py", line 48, in open_connection
    transport, _ = await loop.create_connection(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 1085, in create_connection
    raise exceptions[0]
  File "/usr/lib/python3.11/asyncio/base_events.py", line 1069, in create_connection
    sock = await self._connect_sock(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 973, in _connect_sock
    await self.sock_connect(sock, address)
  File "/usr/lib/python3.11/asyncio/selector_events.py", line 634, in sock_connect
    return await fut
           ^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/selector_events.py", line 674, in _sock_connect_cb
    raise OSError(err, f'Connect call failed {address}')
OSError: [Errno 113] Connect call failed ('192.168.178.63', 6668)
2025-12-11 22:06:31,474 - DEBUG    - aiotinytuya.core: [bfbfxxxxxxxxxxxxx7ckrf] ERROR OPENING SOCKET!!!192.168.178.63


#6
FHEM Code changes / Revision 30618: 98_vitoconnect...
Letzter Beitrag von System - 11 Dezember 2025, 22:00:25
Revision 30618: 98_vitoconnect: asSingleValue fixed – this time for real

98_vitoconnect: asSingleValue fixed – this time for real

Source: Revision 30618: 98_vitoconnect: asSingleValue fixed – this time for real
#7
FHEM Code changes / Revision 30617: 98_vitoconnect...
Letzter Beitrag von System - 11 Dezember 2025, 22:00:25
Revision 30617: 98_vitoconnect: asSingleValue fixed – this time for real

98_vitoconnect: asSingleValue fixed – this time for real

Source: Revision 30617: 98_vitoconnect: asSingleValue fixed – this time for real
#8
Heizungssteuerung/Raumklima / Aw: Vitoconnect - Verbesserte ...
Letzter Beitrag von stefanru - 11 Dezember 2025, 21:52:52
Oh man, das ist hartnäckig.
Hatte noch einen Bug, der ist nun raus.
Ich konnte nun endlich nachvollziehen dass es wirklich richtig funktioniert.
Ich hoffe ich finde nicht nochmal was.
Also man kann die asSingleValue nun sicher verwenden und bekommt den Verbrauch der letzten Tage immer wenn die API updatet in die jeweiligen Tage gelogged, ohne Duplikate in richtiger Reihenfolge usw.
  "1.0.3"  => "11.12.2025  asSingleValue fixed – this time for real"

Morgen im SVN und heute schon auf Git ;-)

Gruß,
Stefan
#9
MQTT / Aw: Stream Deck MQTT
Letzter Beitrag von vencam - 11 Dezember 2025, 21:36:12
Hätte auch Interesse! ;D
#10
Anfängerfragen / Wo/wie fragen: WLAN-RGB-Lampen...
Letzter Beitrag von Thomas24568 - 11 Dezember 2025, 21:34:24
Hallo,

meine FHEM-Anlage hat einen "Umwelt-Sensor" (Z-Wave), der mir voc und CO2-Werte misst. Ich würde nun gern bei Überschreitung gewisser Werte eine Lampe aufleuchten lassen. Fertige "Signal-Ampeln", wie in der Industrie üblich, kosten gleich 200€ aufwärts und sind eindeutig zu groß. Meine Idee ist nun, eine RGB-LED-"Glühbirne" (230V) irgendwie anzusteuern. Mir ist die Hue-Geschichte grob bekannt, aber die benötigen wieder ein Gateway. Aber es gibt ja auch WLAN-RGB-LED Leuchtmittel. Nur dann benötige ich eine Idee, wie ich die Meßwerte abfragen (notify o.ä.) und die Lampe ansteuern kann. Hat das schon mal jemand gemacht, gibt es dazu ein Suchwort für die Forumssuche? Ich weiss im Moment nicht wo ich anfangen könnte...

voc = Flüchtige organische Verbindungen
Sensor = EUROtronic Air Quality Sensor, https://www.eurotronic.org/wp-content/uploads/2023/06/Air-quality-sensor-User-manual-EN.pdf