Temperatur-Scanner für MAX-Thermostate

Begonnen von John, 12 März 2013, 09:44:59

Vorheriges Thema - Nächstes Thema

pnewman

Hallo zusammen,

ich habe mittlerweile meine gesamten Heizkörper, bis auf Küche auf MAX! Geräte umgerüstet.

Nun habe ich mich wieder an den scanner getraut, mit mäßigem Erfolg.

Dabei bin ich so vorgegangen wie hier beschrieben wurde.

Hier die Einstellung in der fhem.cfg:
#       GWC
#
define HZ_GWC MAX HeatingThermostat 0714e2
attr HZ_GWC group Erdgeschoss
attr HZ_GWC icon temp_temperature
attr HZ_GWC room GWC
attr HZ_GWC scanTemp 1
attr HZ_GWC userReadings watchShutter { return "Fenster_GWC";;}
attr HZ_GWC verbose 4
attr HZ_GWC watchShutter Fenster_GWC
define HC.HZ_GWC Heating_Control HZ_GWC 00:05|eco 08:00|comfort 22:00|eco { MaxScan_SetTemp("@","%");;}
attr HC.HZ_GWC room GWC
#
#       Obergeschoss
#
define HZ_Amelie MAX HeatingThermostat 069029
attr HZ_Amelie group Obergeschoss
attr HZ_Amelie icon temp_temperature
attr HZ_Amelie room Amelie
attr HZ_Amelie scanTemp 1
attr HZ_Amelie userReadings watchShutter { return "Fenster_Amelie";;}
attr HZ_Amelie verbose 4
attr HZ_Amelie watchShutter Fenster_Amelie
define HC.HZ_Amelie Heating_Control HZ_Amelie 00:05|eco 08:00|comfort 20:00|eco { MaxScan_SetTemp("@","%");;}
attr HC.HZ_Amelie room Amelie
#

 Hier mal ein paar Zeilen aus meinem LOG:
2013.10.11 00:05:06 2: CUL_MAX_SendQueueHandler: Not enough credit! credit10ms is 31, but we need 110. Waiting 79 seconds.
2013.10.11 00:06:26 2: CUL_MAX_SendQueueHandler: Not enough credit! credit10ms is 2, but we need 110. Waiting 108 seconds.
2013.10.11 00:08:14 2: CUL_MAX_SendQueueHandler: Not enough credit! credit10ms is 109, but we need 110. Waiting 1 seconds.
2013.10.11 00:08:15 2: COC: unknown message 21  110
Z0F01046
2013.10.11 00:08:15 2: COC: unknown message 21  110
Z0F01046007A74800000000B9002200D80C

2013.10.11 00:08:18 1: /dev/ttyAMA0 disconnected, waiting to reappear
Argument "No answer" isn't numeric in numeric lt (<) at ./FHEM/14_CUL_MAX.pm line 434.
2013.10.11 00:08:18 2: CUL_MAX_SendQueueHandler: Not enough credit! credit10ms is No answer, but we need 110. Waiting 110 seconds.
2013.10.11 00:08:23 3: Setting COC baudrate to 38400
2013.10.11 00:08:23 1: /dev/ttyAMA0 reappeared (COC)
2013.10.11 00:08:23 3: COC: Possible commands: mCFiAZOGMRTVWXefltux
Argument "No answer" isn't numeric in addition (+) at ./FHEM/99_UtilsMaxScan.pm line 284.
2013.10.11 00:09:24 2: MaxScan HZ_Amelie not enough credits(66) need 333/360 NextScan:2013-10-11 00:15:24
2013.10.11 00:09:24 3: MaxScan   adjust HZ_GWC to 2013-10-11 00:15:29
Argument "No answer" isn't numeric in addition (+) at ./FHEM/99_UtilsMaxScan.pm line 284.
2013.10.11 00:21:03 3: MaxScan_Shutter_Notify Fenster_GWC onoff: 0
2013.10.11 00:23:29 2: MaxScan HZ_GWC not enough credits(323) need 76/180 NextScan:2013-10-11 00:26:29
2013.10.11 00:23:29 3: MaxScan   adjust HZ_Amelie to 2013-10-11 00:29:24
2013.10.11 00:49:34 3: MaxScan_Shutter_Notify Fenster_Amelie onoff: 0
2013.10.11 01:21:03 3: MaxScan_Shutter_Notify Fenster_GWC onoff: 0
2013.10.11 01:22:15 2: CUL_MAX_SendQueueHandler: Missing ack from 069029 for 0f910403123456069029000d0b01968b
2013.10.11 01:49:34 3: MaxScan_Shutter_Notify Fenster_Amelie onoff: 0
2013.10.11 02:21:03 3: MaxScan_Shutter_Notify Fenster_GWC onoff: 0
2013.10.11 02:49:34 3: MaxScan_Shutter_Notify Fenster_Amelie onoff: 0
2013.10.11 03:21:03 3: MaxScan_Shutter_Notify Fenster_GWC onoff: 0
2013.10.11 03:22:16 2: CUL_MAX_SendQueueHandler: Missing ack from 07a748 for 0f56040312345607a748000d0b03968d
2013.10.11 03:49:34 3: MaxScan_Shutter_Notify Fenster_Amelie onoff: 0
2013.10.11 04:21:03 3: MaxScan_Shutter_Notify Fenster_GWC onoff: 0
2013.10.11 04:22:15 2: CUL_MAX_SendQueueHandler: Missing ack from 07926e for 0fe9040312345607926e000d0b04968b
2013.10.11 04:49:34 3: MaxScan_Shutter_Notify Fenster_Amelie onoff: 0
2013.10.11 05:21:03 3: MaxScan_Shutter_Notify Fenster_GWC onoff: 0
2013.10.11 05:49:34 3: MaxScan_Shutter_Notify Fenster_Amelie onoff: 0
2013.10.11 06:16:42 2: autocreate: define MAX_0f0004 MAX WallMountedThermostat 0f0004
2013.10.11 06:16:42 2: autocreate: define FileLog_MAX_0f0004 FileLog ./log/MAX_0f0004-%Y.log MAX_0f0004
2013.10.11 06:17:15 2: COC: unknown message Z00
2013.10.11 06:17:15 3: COC: Unknown code Z090C23044207926E07A7, help me!
2013.10.11 06:17:31 2: CUL_MAX_Parse: Got unhandled message type 89
2013.10.11 06:17:33 2: CUL_MAX_SendQueueHandler: Missing ack from 0714e2 for 0be004401234560714e20122
2013.10.11 06:18:12 2: COC: unknown message Z0118
2013.10.11 06:21:03 3: MaxScan_Shutter_Notify Fenster_GWC onoff: 0
2013.10.11 06:49:34 3: MaxScan_Shutter_Notify Fenster_Amelie onoff: 0


Und immer wenn ich die .cfg speichern will kommt ERROR:
T_Wohn: unknown attribute watchShutter, choose one of verbose:0,1,2,3,4,5 room group comment alias eventMap userReadings IODev do_not_notify:1,0 ignore:0,1 dummy:0,1 showtime:1,0 loglevel:0,1,2,3,4,5,6 keepAuto:0,1 scanTemp:0,1 event-on-change-reading event-on-update-reading event-min-interval stateFormat devStateIcon devStateStyle icon sortby webCmd or use attr global userattr watchShutter HZ_GWC: unknown attribute watchShutter, choose one of verbose:0,1,2,3,4,5 room group comment alias eventMap userReadings IODev do_not_notify:1,0 ignore:0,1 dummy:0,1 showtime:1,0 loglevel:0,1,2,3,4,5,6

Wo liegt denn nun mein Problem?
Was habe ich falsch gemacht?

Gruß
pnewman
Raspberry Pi3B+ / Nano-Cul 868 - MAX!=Heizung, HM-Lan - Rollo+Licht, JeeLink-Clone 868 - LaCrosse, JeeLink-Clone 868 - PCA301, CUL 434 - IT-Steckdosen+Fernbedienung

John

#151
Hallo pnewman


2013.10.11 00:05:06 2: CUL_MAX_SendQueueHandler: Not enough credit! credit10ms is 31, but we need 110. Waiting 79 seconds.

Das gibt das Modul CUL_MAX dann aus, wenn es einen Befehl versenden soll, dies aber nicht kann, weil die Credits nicht reichen.
Der Befehl landet in einer Queue, die dann abgearbeitet wird, wenn genug Credits vorhanden sind.

Du hast offensichtlich ein Ressourcen-Problem.
Entweder gibt es einen Mechanismus, der zu oft sendet oder der Empfang ist zu schlecht und die
Credits schwinden, weil CUL häufig wiederholen muss.

Dem MAXScanner hab ich ja genau darauf getrimmt, auf die Credits zu achten.
siehe:
Zitat2013.10.11 00:23:29 2: MaxScan HZ_GWC not enough credits(323) need 76/180 NextScan:2013-10-11 00:26:29
Diese Zeile will sagen.
das Modul verzichtet auf einen Scan, da zu wenig Credits vorhanden sind und versucht es später nochmal.


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

pnewman

Hallo John,

danke für die Antwort.

Wenn der Scanner soweit läuft, bin ich schonmal zufrieden.

Die fehlenden Credits können doch auch dadurch kommen, dass ich kurz vorher alle meine Heizkörper bearbeitet habe.
Vorher hatte ich ja nur zum testen zwei Heizungen programmiert.

Ich werde dass mal beobachten.

Danke für dein Skript.

Gruß
pnewman
Raspberry Pi3B+ / Nano-Cul 868 - MAX!=Heizung, HM-Lan - Rollo+Licht, JeeLink-Clone 868 - LaCrosse, JeeLink-Clone 868 - PCA301, CUL 434 - IT-Steckdosen+Fernbedienung

der-Lolo

Hallo Zusammen,
gibt es eigentlich NEWS bzgl. dem Max_Cube? Wird der max Cube mittlerweile vom Scanner Modul unterstützt?
Ich las vor einer ganzen weile mal diesen Thread und stellte fest das der Scanner nicht mit dem Cube arbeitet, an diesem knackpunkt wurde gearbeitet - hat sich das problem mittlerweile gelöst?
Falls nicht werde ich mir denke ich einen CUL anschaffen...
Ist es ratsam den CUL und den CUBE gleichzeitig zu betreiben?
Sodass der CUL nur fürs Scannen zuständig ist und der CUBE eventuelle Soll temperaturänderungen vornimmt?
Oder sollte ich an dieser stelle "Strom sparen" und den CUBE rauswerfen?

Harald

Das würde mich auch sehr interessieren. Es wäre toll, wenn man John's Modul auch für MAX-Thermostate anpassen könnte, die mit dem MAX-Wochenprogramm laufen. Meine Regierung wäre "not amused", wenn meine "Spielerei" dafür sorgen würde, dass das Wohnzimmer kalt wäre, weil z.B. der Rechner abgstürzt ist o.ä.

Ich möchte möglichst wenig in die MAX-Funktionen eingreifen. Es wäre aber toll, wenn die Temperaturkurven trotzdem in FHEM ordentlich dargestellt würden. Die Argumentationen bez. Änderungen am Heizungssystem wären dann "augenscheinlich" untermauert.

Ich kenne die Schwierigkeiten, die bei der Realisierung der besseren Temperaturdarstellung vorhanden sind. John hat das ja sehr deutlich und nachvollziehbar dargelegt. Aber vielleicht gibt es ja doch einen Weg, das zu verwirklichen.

Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

Harald

#155
Hallo John,

also ich finde, dass Du tolle Arbeit geleistet und sicher viel Zeit in Dein Scannermodul gesteckt hast. Dafür erstmal herzlichen Dank.

Allerdings bin ich der Meinung, dass so etwas nur dann in ein so grundlegendes Modul wie z.B. 10_MAX oder 00_MAXLAN integriert werden sollte, wenn alle User einen Vorteil haben. Zur Zeit ist es ja so, dass diejenigen, die ihre Heizungsthermostaten über den Qube und nicht über einen CUL betreiben, diese Funktionen nicht nutzen können. Wenn jemand für diese Anwender ein passendes Modul entwickelt, könnte es sich evtl. mit Deinen Funktionen beißen, oder?
Ich erinnere nur an Jürgen I., der da ja schon einen Anlauf gemacht hat, aber z.Z. aus beruflichen Gründen nicht weiter verfolgen kann. Wenn er wieder über die entsprechende Zeit verfügt, wird er sicherlich weiter entwickeln. Vielleicht könnt Ihr Euch ja zusammen tun?

Deshalb bin ich der Meinung, dass Dein Temperaturscanner besser in einem eigenen Modul aufgehoben ist, so wie ja jetzt schon.

Viele Grüße

Harald

Nachtrag: Arbeitet Dein Modul nach dem Prinzip der Umschaltung Auto/Hand/Auto oder hast Du Deine Idee von hier http://forum.fhem.de/index.php/topic,11624.msg89047.html#msg89047 weiter verfolgt und eingebaut?
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

John

Hallo Harald,

ZitatAllerdings bin ich der Meinung, dass so etwas nur dann in ein so grundlegendes Modul wie z.B. 10_MAX oder 00_MAXLAN integriert werden sollte,
Ich glaube mittlerweile, daß das der falsche Ansatz ist, da 10_MAX ohnehin schon sehr komplex ist.
Ausserdem hat sich das bisherige Prinzip "1 Maintainer pro Modul" bewährt.
Wer soll den 10_MAX pflegen, wenn der MaxScanner integriert wird ?

Ich denke darüber nach ein richtiges MaxScanner-Modul zu schreiben, das parallel zu den andern Max-Modulen existiert und
für die Anwender einfacher zu handhaben ist.

Derzeit habe ich jedoch mit dem PID-Modul andere Prioritäten.

Grundsätzlich werde ich keine Software für Hardware entwickeln, die ich nicht selber im Hause hab. Das ist mir einfach zu zeitaufwändig.

Ich habe auch den Anspruch für von mir geschriebene Software Unterstützung bieten zu können, das geht nur dann vernünftig,
wenn ich die entsprechenden Szenarien tatsächlich nachstellen kann.

Zitat
Vielleicht könnt Ihr Euch ja zusammen tun?
Ich haben Jürgen ja schon bei seinen ersten Planungen meine Unterstützung zugesagt, das gilt weiterhin.

ZitatArbeitet Dein Modul nach dem Prinzip der Umschaltung Auto/Hand/Auto oder hast Du Deine Idee von hier http://forum.fhem.de/index.php/topic,11624.msg89047.html#msg89047 weiter verfolgt und eingebaut?
Ich habe hier nur eine Idee formuliert. Der Scanner arbeitet nach wie vor über die Umschaltung der Betriebsart zwischen Auto/Hand.

John

CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Harald

Hallo John,

vielen Dank für Deine Ausführungen.  Deine Überlegungen kann ich voll und ganz nachvollziehen.  Auch ich würde (wenn ich's könnte) nur Sachen entwickeln, die ich selbst testen könnte.

Vielleicht kann Jürgen ja bald wieder an seinem Modul arbeiten. Er will ja das so auslegen, das auch der Qube unterstützt  wird.

Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

Harald

Hallo John,

vielleicht kannst Du mir einen Tipp geben. Ich versuche, Dein Modul an meine Verhältnisse anzupassen. Ich bin soweit, dass es grundsätzlich läuft.

MAXLAN liefert ja "dutycycles",die ich in die Readings des Qube übertrage. Diese rechne ich im Modul in "credit10ms" um und "msgcnt" hole ich mir aus den Internals in die Readings des jeweiligen Gerätes (wozu wird das eigentlich gebraucht?). $strCulName habe ich erstmal fest "Qube" zugewiesen.

Allerding wird die Suche nach "HeatingThermostat" nicht beendet, wenn die deffinierten gefunden wurden.
2013.10.15 14:22:09 2: Zeile 210, 065be9 MaxScan check Max-Component:Flur
2013.10.15 14:22:09 2: Zeile 213, MaxScan Flur is HeatingThermostat
2013.10.15 14:22:09 2: MaxScan Flur attr scanTemp is ok
2013.10.15 14:22:09 2: Zeile 210, 066918 MaxScan check Max-Component:Wohnzimmer1
2013.10.15 14:22:09 2: Zeile 213, MaxScan Wohnzimmer1 is HeatingThermostat
2013.10.15 14:22:09 2: MaxScan Wohnzimmer1 attr scanTemp is ok
2013.10.15 14:22:09 2: Zeile 210, 06695f MaxScan check Max-Component:Bad
2013.10.15 14:22:09 2: Zeile 213, MaxScan Bad is HeatingThermostat
2013.10.15 14:22:09 2: MaxScan Bad attr scanTemp is ok
2013.10.15 14:22:09 2: Zeile 210, 066a43 MaxScan check Max-Component:Wohnzimmer3
2013.10.15 14:22:09 2: Zeile 213, MaxScan Wohnzimmer3 is HeatingThermostat
2013.10.15 14:22:09 2: MaxScan Wohnzimmer3 attr scanTemp is ok
2013.10.15 14:22:09 2: Zeile 210, 066b24 MaxScan check Max-Component:Wohnzimmer2
2013.10.15 14:22:09 2: Zeile 213, MaxScan Wohnzimmer2 is HeatingThermostat
2013.10.15 14:22:09 2: MaxScan Wohnzimmer2 attr scanTemp is ok
2013.10.15 14:22:09 2: Zeile 210, 066b67 MaxScan check Max-Component:Kueche
2013.10.15 14:22:09 2: Zeile 213, MaxScan Kueche is HeatingThermostat
2013.10.15 14:22:09 2: MaxScan Kueche attr scanTemp is ok
2013.10.15 14:22:09 2: Zeile 210, 066c61 MaxScan check Max-Component:Computer
2013.10.15 14:22:09 2: Zeile 213, MaxScan Computer is HeatingThermostat
2013.10.15 14:22:09 2: MaxScan Computer attr scanTemp is ok
2013.10.15 14:22:09 2: Zeile 210, 069e0b MaxScan check Max-Component:ECO_Taster
2013.10.15 14:22:09 2: Zeile 210, 06a6ad MaxScan check Max-Component:Qube
2013.10.15 14:22:09 2: Zeile 210, HASH(0x1a18ba8) MaxScan check Max-Component:
2013.10.15 14:22:09 2: Zeile 210, HASH(0x1a18fc8) MaxScan check Max-Component:
2013.10.15 14:22:09 2: Zeile 210, HASH(0x1a19130) MaxScan check Max-Component:
.
.
.
.
.
.
2013.10.15 14:22:12 2: Zeile 210, HASH(0x243bcc8) MaxScan check Max-Component:
2013.10.15 14:22:12 2: Zeile 210, HASH(0x243bef0) MaxScan check Max-Component:
2013.10.15 14:22:12 2: MaxScan found 7 thermostats
2013.10.15 14:22:12 2: MaxScan optimal scan intervall:15
.
.
.
2013.10.15 14:22:12 2: MaxScan.Computer CreditTime:2013-10-15 14:19:18 CurTime:2013-10-15 14:22:12 sdCreditTime:1381839558 sdCurTime:1381839732 CulCredits:620 Credits:794
2013.10.15 14:22:12 2: MaxScan.Computer strShutterName:? numWinIsOpen:0
2013.10.15 14:22:12 2: MaxScan.Bad CreditTime:2013-10-15 14:19:18 CurTime:2013-10-15 14:22:12 sdCreditTime:1381839558 sdCurTime:1381839732 CulCredits:620 Credits:794
2013.10.15 14:22:12 2: MaxScan.Bad strShutterName:? numWinIsOpen:0
2013.10.15 14:22:12 2: MaxScan is finished --------------------


Die Zeilen "2013.10.15 14:22:12 2: Zeile 210, HASH(0x243bcc8) MaxScan check Max-Component:" kommen unterschiedlich oft - bis zu ca. 60/80 Mal.

Hast Du eine Idee, wie ich die Suche beenden kann, wenn alle gültigen Thermostate bzw. MAX-Geräte gefunden wurden?

Die Kollision von Wochenprogramm und MaxScanner habe ich natürlich noch nicht im Griff. Mal sehen, wie das ohne läuft.

Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

John

Zitatund "msgcnt" hole ich mir aus den Internals in die Readings des jeweiligen Gerätes (wozu wird das eigentlich gebraucht?)
ich verwende den Zeitstempel von msgcnt und nicht dessen Wert.
   my $strLastTransmit=ReadingsTimestamp($therm,"msgcnt","");

Es geht um die Feststellung von Latenzzeiten. Wenn ein anderer Mechanismus innerhalb der letzten 5 Sekunden etwas
an das Thermostat gesendet hat, lässt der Scanner seine "Finger" davon. (Da kann ja noch eine Antwort zurückkommen, die wichtig
für den weiteren Verlauf ist).


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Harald

#160
Besten Dank, das habe ich verstanden. Dann sollte meine Lösung auch funktionieren, hoffe ich.

Allerdings komme ich hier nicht weiter:
  my $strName;
  my %thermi=();  # hash fuer sortierung nach

  foreach my $aaa ( sort keys %{$modules{MAX}{defptr}} )
{ $strName=$modules{MAX}{defptr}{$aaa}{NAME};
    Log 2,"Zeile 210, $aaa MaxScan check Max-Component:$strName" if ($DEBUG ==1);   
# if ($strName eq "") next
next if $defs{$strName}{type} !~ m/^HeatingThermostat.*/;   # uns interessieren nur heizthermostate
    Log 2,"Zeile 213, MaxScan $strName is HeatingThermostat" if ($DEBUG ==1);   

Ich finde einfach keine Lösung, damit nur die Max-Geräte im Log (s.o.) aufgelistet werden. Irgendwie habe ich da ein Brett vorm Kopf.
Noch eine Frage: Ist es richtig dass viele "credit10ms" bedeutet, dass viel gesendet werden kann? Bei "dutycycle" ist es nämlich umgekehrt.

Hast Du evtl. einen Tipp?

Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

John

ZitatIst es richtig dass viele "credit10ms" bedeutet, dass viel gesendet werden kann?
richtig, sie können bis zu einem Wert von 900 ansteigen.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Harald

#162
Hallo John,

bitte entschuldige, wenn ich Dir schon wieder auf die Nerven gehe. Es geht um die foreach-Schleife in Zeile 208.
Diese wird nicht beendet, nachdem die regulären Maxkomponenten gefunden wurden (siehe Antwort #158). Ich habe schon verschiedenes ohne Erfolg probiert. Im Logfile werden nach der Ausgabe der gefundenen Maxkomponenten solche Zeilen ausgegeben:

2013.10.15 14:22:12 2: Zeile 210, HASH(0x243bcc8) MaxScan check Max-Component:

Nach dem ersten Start (reload 99_UtilsMaxScan.pm) erscheinen im Logfile die gefundenen Maxgeräte und weitere 9 dieser Zeilen (s.o.) sowie nach jedem Durchgang immer mehr und mehr.
Außerdem gibt es auf der RasPi-Konsole für jeden leeren (undef?) $strName folgende Fehlermeldung:

Use ofuniitialized value in pattern mach (m//) ./FHEM/99_UtilsMaxScan.pm line 212

weil die Suchroutine ja nichts finden kann, weil nichts da ist.

Hast Du eine Idee, wie ich die Ausgabe der unnützen Zeilen verhindern kann?

Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

John

Zitat
Nach dem ersten Start (reload 99_UtilsMaxScan.pm) erscheinen im Logfile die gefundenen Maxgeräte und weitere 9 dieser Zeilen (s.o.) sowie nach jedem Durchgang immer mehr und mehr.

Diese Schleife wird beim jedem Aufruf vom Scanner durchlaufen.
Der Scanner sucht jedesmal von neuem nach Max-Thermostaten. (es können ja welche hinzugekommen/entfernt sein)
Da du den DEBUG Schalter aktiviert hast, bekommst werden alle Informationen ausgegeben.
Dies ist zum Entwickeln und Analysieren gedacht, nicht für den Normalbetrieb.
Ich sehe an dem beschriebenen Verhalten nichts Ungewöhnliches.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Harald

#164
Hallo John,

vielen Dank für die Aufklärung. Ich habe schon gedacht, dass ich da was falsch gemacht habe. Und ja, Debug habe ich absichtlich auf 1 gesetzt. Eben zu Testen.

Nochmals herzlichen Dank für die Hilfe und einen schönen Tag noch.

Harald

1. Nachtrag: So, Debug habe ich wieder auf 0 gesetzt und im Logfile sind die genannten Meldungen nicht mehr aber in der RasPi-Konsole. Es wäre schön, wenn die auch noch eliminiert werden könnten. Hast Du diese Meldungen dort auch oder sind die nur bei mir?

2. Nachtrag: So ich hab's!  ::)   Zeile 208 ff sehen jetzt bei mir so aus:

        foreach my $aaa ( sort keys %{$modules{MAX}{defptr}} ) {
        $strName =$modules{MAX}{defptr}{$aaa}{NAME}; if (not defined ($strName)) {next;}
        next if $defs{$strName}{type} !~ m/^HeatingThermostat.*/;   # uns interessieren nur heizthermostate

Damit habe ich weder im Log noch auf der Konsole unerwünschte Meldungen. ;D
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus