Temperatur-Scanner für MAX-Thermostate

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

Vorheriges Thema - Nächstes Thema

John

Zitat von: Brun schrieb am Di, 16 April 2013 07:11Hallo Geminde,

funktioniert das Script inzwischen auch mit den MAX!Cube?
Dann wäre ich auch dafür, dass es als Sandart mit aufgenommen wird.


Gruß Brun
Hallo Brun
ich selbst habe keinen Cube, aber laut Niko
ZitatMit einem Cube scheint es allerdings nicht zu gehen. Der Cube übermittelt keine Credits. Man müsste also aus dem Script alles mit Credits entfernen. Da dies aber ein Hauptvorteil des Scrpits ist macht es dann eigentlich auch keinen Sinn mehr.
in diesem Thread
Link
verfügt der Cube über keine Angabe von credit10ms. Dieses Reading braucht der Scanner unbedingt.

Beim CUL sieht dies so aus:

(siehe Anhang / see attachement)


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Harald

Hallo John,

vielen Dank für Deine Anmerkung, aber bei mir sind alle Geräte mit dem Parameter "type" versehen. Habe ich soeben nochmal kontrolliert.

Wie ich ja geschrieben habe, sind die Fehlermeldungen bez. 92_FileLog.pm ja weg, seit ich die Zeile $tn = ...{TRIGGERTIME}, durch $tn = TimeNow(); ersetzt habe.

Jetzt fehlen mir noch Infos zu {$strName} in der 99_MaxScan.pm

Nochmals besten Dank für die Hinweise und 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

Hallo Harald

mir ist noch was aufgefallen
ZitatDort steht "next if $defs{$str/Name}{type} !~ m/^HeatingThermostat.*/;" Einige Zeilen höher steht "my $strName;"
Sehe ich das richtig, dass die Variable nicht richtig deffiniert ist oder vielleicht noch garnicht?

die korrekte Zeile 190 lautet
next if $defs{$strName}{type} !~ m/^HeatingThermostat.*/;  

$defs{$str/Name}{type} ist so falsch geschrieben

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Harald

Danke John für den Hinweis,

Du hast recht, das ist ein Schreibfehler von mir. Die Zeile steht in der 99_MaxScan.pm so wie Du geschrieben hast. Ist denn die Zeile "my $strName;" so richtig?

Kannst Du mir sagen, warum ich nach dem Start von FHEM die Meldung "Use of uninitalized valve $strName in hash element at ./FHEM/99_MaxScan.pm line 190"
bekomme? Was mache ich da noch falsch?

Schönen Abend noch von

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

Hallo Harald,

setzt bitte mal die Debug Variable
---------------------
package main;

use strict;
use warnings;
use POSIX;

my $DEBUG=1;

--------------------
danach FHEM neu starten.

jetzt sollte uns  folgende Zeile 188 den Übeltäter liefern:
   Log 2,"MaxScan check Max-Component:$strName" if ($DEBUG ==1);

Der entsprechende Auszug aus der Log-Datei wäre interessant.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Harald

Hallo John,

besten Dank, dass Du mir hilfst. Hier der Logauszug:

2013.04.17 09:45:19 2: MaxScan is called --------------------
2013.04.17 09:45:19 2: MaxScan check Max-Component:MAX_0618c2
2013.04.17 09:45:19 2: MaxScan check Max-Component:MAX_065be9
2013.04.17 09:45:19 2: MaxScan MAX_065be9 is HeatingThermostat
2013.04.17 09:45:19 2: MaxScan MAX_065be9 attr scanTemp is ok
2013.04.17 09:45:19 2: MaxScan check Max-Component:MAX_066918
2013.04.17 09:45:19 2: MaxScan MAX_066918 is HeatingThermostat
2013.04.17 09:45:19 2: MaxScan MAX_066918 attr scanTemp is ok
2013.04.17 09:45:19 2: MaxScan check Max-Component:MAX_06695f
2013.04.17 09:45:19 2: MaxScan MAX_06695f is HeatingThermostat
2013.04.17 09:45:19 2: MaxScan MAX_06695f attr scanTemp is ok
2013.04.17 09:45:19 2: MaxScan check Max-Component:MAX_066a43
2013.04.17 09:45:19 2: MaxScan MAX_066a43 is HeatingThermostat
2013.04.17 09:45:19 2: MaxScan MAX_066a43 attr scanTemp is ok
2013.04.17 09:45:19 2: MaxScan check Max-Component:MAX_066b24
2013.04.17 09:45:19 2: MaxScan MAX_066b24 is HeatingThermostat
2013.04.17 09:45:19 2: MaxScan MAX_066b24 attr scanTemp is ok
2013.04.17 09:45:19 2: MaxScan check Max-Component:MAX_066b67
2013.04.17 09:45:19 2: MaxScan MAX_066b67 is HeatingThermostat
2013.04.17 09:45:19 2: MaxScan MAX_066b67 attr scanTemp is ok
2013.04.17 09:45:19 2: MaxScan check Max-Component:MAX_066c61
2013.04.17 09:45:19 2: MaxScan MAX_066c61 is HeatingThermostat
2013.04.17 09:45:19 2: MaxScan MAX_066c61 attr scanTemp is ok
2013.04.17 09:45:19 2: MaxScan check Max-Component:MAX_069e0b
2013.04.17 09:45:19 2: MaxScan check Max-Component:MAX_06a6ad
2013.04.17 09:45:19 2: MaxScan check Max-Component:
2013.04.17 09:45:19 2: MaxScan check Max-Component:
2013.04.17 09:45:19 2: MaxScan check Max-Component:
2013.04.17 09:45:19 2: MaxScan check Max-Component:
2013.04.17 09:45:19 2: MaxScan check Max-Component:
2013.04.17 09:45:19 2: MaxScan check Max-Component:
2013.04.17 09:45:19 2: MaxScan check Max-Component:
2013.04.17 09:45:19 2: MaxScan check Max-Component:
2013.04.17 09:45:19 2: MaxScan check Max-Component:
2013.04.17 09:45:19 2: MaxScan check Max-Component:
2013.04.17 09:45:19 2: MaxScan  found 7 thermostats
2013.04.17 09:45:19 2: MaxScan optimal scan intervall:15
2013.04.17 09:45:19 2: MaxScan MAX_066a43 READINGS:msgcnt is not defined
2013.04.17 09:45:19 2: MaxScan MAX_06695f READINGS:msgcnt is not defined
2013.04.17 09:45:19 2: MaxScan MAX_066b24 READINGS:msgcnt is not defined
2013.04.17 09:45:19 2: MaxScan MAX_066c61 READINGS:msgcnt is not defined
2013.04.17 09:45:19 2: MaxScan MAX_066918 READINGS:msgcnt is not defined
2013.04.17 09:45:19 2: MaxScan MAX_065be9 READINGS:msgcnt is not defined
2013.04.17 09:45:19 2: MaxScan MAX_066b67 READINGS:msgcnt is not defined
2013.04.17 09:45:19 2: MaxScan is finished --------------------


In der 99_MaxScan.pm habe ich in oder nach der von Dir angegebenen Zeile nicht gefunden, was mir den Übeltäter zeigt. Aber vielleicht übersehe ich das ja auch.

Die bei mir aktuelle 99:MaxScan.pn habe ich mal angehängt, da ich nicht weiß, wie ich die Datei in FHEM zum Editieren aufrufen kann, um den relevanten Bereich zu kopieren.

Und hier noch ein Auszug aus meiner fhem.cfg:

define ml MAXLAN 192.168.0.32 360 ondemand

#Qube
define MAX_06a6ad MAX Cube 06a6ad
attr MAX_06a6ad alias Qube
attr MAX_06a6ad room MAX

define FileLog_MAX_06a6ad FileLog ./log/MAX_Qube-%Y.log MAX_06a6ad
attr FileLog_MAX_06a6ad logtype text
attr FileLog_MAX_06a6ad room hidden

#Computer
define MAX_066c61 MAX HeatingThermostat 066c61
attr MAX_066c61 alias Computer
attr MAX_066c61 room MAX
attr MAX_066c61 scanTemp 1

define FileLog_MAX_066c61 FileLog ./log/MAX_Computer-%Y.log MAX_066c61
attr FileLog_MAX_066c61 logtype text
attr FileLog_MAX_066c61 room hidden



Viele Grüße und nochmals vielen Dank für Deine Hilfe

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

Hallo Harald,

die gute Nachricht ist: das Skript ist das richtige.

Die schlechte Nachricht: mit dem Cube läuft das alles nicht.
siehe
Link

Damit ich nicht wieder Erbsen suchen muss, bitte ich dich mir einen Abzug der Web-Seite zum Cube zu schicken.
Dann kann ich sehen welche Attribute, Readings und Properties das Teil hat.

Ich will dann einen Log-Eintrag erzeugen, der eindeutig darauf hinweist, dass der MaxScanner nicht mit einem CUBE funktioniert.
Ich selbst habe keinen und kann das nicht überprüfen.



John

CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Harald

Hallo John,

danke, dass Du Dir die Mühe machst. Naja, wenn's mit dem Qube nicht geht, dann hab ich halt Pech gehabt.
Ich hatte vor, Qube mit MAX!Geräten und CUL mit anderen Sensoren parallel laufen zu lassen.
Soweit ich das bisher verstanden habe, geht das ja auch grundsätzlich - nur nicht mit MaxScan
und den damit verbundenen ordentlichen Diagrammen.

Was möchtest Du für eine Qube-Webseite haben? Die, die bei der Anwahl vom Qube im Fenster von FHEM/MAX,
in dem die Geräte aufgelistet dargestellt wird? Falls nicht, beschreibe mir bitte genauer, was Du benötigst.
Du weißt, ich bin blutiger Anfänger.

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

Matthias Gehre

Der Cube übermittelt schon so eine Art credits, diese sind aber nicht als READING exportiert.
Diese stehen in $hash->{dutycycle} (siehe 00_MAXLAN Zeile 654)

Sie fangen bei 0 an, erhöhen sich mit jedem Senden und bei 100 ist Schluss. Nach einer Stunde
werden sie vom Cube auf 0 resettet. Allerdings kann man sie nicht direkt abfragen (soweit ich das sehe),
sonder erhält sie nur in der Antwort auf einen gesendeten Befehl. (Aber vielleicht gibt's einen NOP Befehl)

John

Hallo Harald,

am besten gehst du auf den Link Everything in der WEB-Darstellung.

Hier sollte dein  CUBE als MAX_06a6ad zu erreichen sein
und MAXLAN als ml (laut dem Auszug aus deiner fhem.dfg)

Beide links anklicken und eine Abzug senden. Das würde weiterhelfen.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

John

Zitat von: Matthias Gehre schrieb am Mi, 17 April 2013 18:02Der Cube übermittelt schon so eine Art credits, diese sind aber nicht als READING exportiert.
Diese stehen in $hash->{dutycycle} (siehe 00_MAXLAN Zeile 654)

Sie fangen bei 0 an, erhöhen sich mit jedem Senden und bei 100 ist Schluss. Nach einer Stunde
werden sie vom Cube auf 0 resettet. Allerdings kann man sie nicht direkt abfragen (soweit ich das sehe),
sonder erhält sie nur in der Antwort auf einen gesendeten Befehl. (Aber vielleicht gibt's einen NOP Befehl)

Hallo Matthias,

Einige Fragen:

a. wird {dutycycle} auch an der Web-Oberfäche dargestellt ?

b. was "kostet" einmaliges Senden von desiredTemperature ?

Wenn du es nicht beantworten kannst, so vielleicht andere Anwender, die über einen Cube verfügen.

Damit hätten wir eine Chance auch mit dem Cube zu arbeiten.


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Harald

Hallo John,

schönen Dank, dann will ich das mal versuchen.


DEF                  192.168.0.32 360 ondemand
DeviceName           192.168.0.32:62910
INTERVAL             360
NAME                 ml
NR                   43
PARTIAL      
STATE                opened
TYPE                 MAXLAN
cubeTimeDifference   0
fwversion            0111
pairmode             0
persistent           0
rfaddr               06a6ad
serial               KEQ0000785


und nun den Qube


DEF                  Cube 06a6ad
IODev                ml
LASTInputDev         ml
MSGCNT               95
NAME                 MAX_06a6ad
NR                   46
NTFY_TRIGGERTIME     2013-04-17 19:36:02
STATE                connected
TYPE                 MAX
addr                 06a6ad
backend              ml
clocknotset
groupid              17
ml_MSGCNT            95
ml_RAWMS C:06a6ad,7QamrQARAf9LRVEwMDAwNzg1AQsABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsABEAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAGh0dHA6Ly93d3cubWF4LXBvcnRhbC5lbHYuZGU6ODAvY3ViZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENFVAAACgADAAAOEENFU1QAAwACAAAcIA==
ml_TIME             2013-04-17 19:36:02
serial              KEQ0000785
type                Cube


Ich hoffe, das ist so richtig.

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

Matthias Gehre

Also einmal Senden müsste "3" kosten, damit man auf 33 Sende-Einheiten pro Stunde kommt.
Das wird m.E. nicht in der WEB-Oberfläche dargestellt, aber man kann
00_MAXLAN Zeile 654:
  $hash->{dutycycle} = hex($args[0]);
zu
  $hash->{dutycycle} = hex($args[0]);
  readingsSingleUpdate($hash,"dutycycle",$hash->{dutycycle},0);
ergänzen. Dann hätte man auch das dutycycle als READING.

Jürgen I.

Mit onDemand wird bei jeder Verbindung der aktuelle Dutycycle mitgeschickt.
In Zeile 439 in 00_MAXLAN.pm die Codezeile von Matthias Gehre "readingsSingleUpdate($hash,"dutycycle",$hash->{dutycycle},0);" einfügen.
Sollte dann den Wert bei jeder Neuverbindung aktuallisieren. Leider kann ich´s gerade nicht testen. Vielleicht schaff ich´s heut abend.
Schön wäre es den Wert nicht im MAXLAN Modul sondern im MAXCube Modul zu haben. Dann lässt sich das in MaxScan gut abfragen da der Cube
ja schon erkannt wird und das MAXLAN Modul nicht weil kein "type" vorhanden.

Harald

Hallo zusammen,

hat sich denn mit dem Temperatur-Scanner noch was getan? Funktioniert der mittlerweile auch mit dem Qube?

Wäre toll, wenn die Diagramme bald nicht mehr so konfus wären. Ich möchte nämlich aus Sicherheitsgründen
 (Spannungsausfall) nicht auf die MAX-eigene Temperatursteuerung verzichten.

Die von Matthias vorgeschlagene Änderung habe ich eingefügt. Wo sollte das Reading dutycycle zu finden sein,
 beim Cube, bei den Thermostaten oder wo?
Mache ich den von J. Isleib empfohlenen Eintrag, erhalte ich Fehlermeldungen. Da habe ich wohl etwas falsch gemacht
oder stimmt die Zeilen-Nr. 439 evtl nicht? Bei mir steht da nämlich nichts von $hash-> ......

Viele Grüße und schönen Sonntag noch

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