Max, Scanner & Bluetooth Anwesenheit

Begonnen von der-Lolo, 12 Oktober 2014, 11:37:52

Vorheriges Thema - Nächstes Thema

der-Lolo

Hallo Zusammen,
ich bin mit meinem FHEM auf den Cubietruck umgezogen - habe nun auch den Scanner eingerichtet soweit alles gut...

Auf meiner letzten Installation verwendete ich Bluetooth um bei Anwesenheit den Comfort Modus der Thermostate zu setzen.
Kann ich das wieder so machen - oder ist das ein problem für den Scanner?

Wie würde das nun am vernünftigsten miteinander funktionieren? Wie habt Ihr das eingerichtet?

John

Hi der-Lolo,

ZitatAuf meiner letzten Installation verwendete ich Bluetooth um bei Anwesenheit den Comfort Modus der Thermostate zu setzen
Das bedeutet ja zunächst nichts anderes, als die Solltemperatur zu setzen, die bei comfortTemperature hinterlegt ist
oder allgemeiner ausgedrückt
die Solltemperatur wird nicht vom Wochenprogramm des Thermostats, sondern durch einen anderen Mechanismus verändert.

Der Scanner versucht auch dies zu berücksichtigen.

Allerdings kann auch folgendes passieren:

  • Anwesenheit wird erkannt und ein externes Programm ändert den Sollwert
  • eine Minute später hat das Wochenprogramm des Thermostats einen Schaltpunkt und überschreibt somit den zuvor festgelegten Sollwert

Diesen Fall gilt es zu bedenken.


John

CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

der-Lolo

Hallo John,
erstmal Danke für deine Antwort...

also gilt es die Zeiten des internen Wochenprogramms so zu setzen das eine Änderung der Anwesenheit "unwahrscheinlich" ist.
Das wäre ja kein problem.

Wenn ich nun die soll Temperatur auf Comfort durch die Anwesenheit ändere, hab ich doch zumindest für ein Thermostat (genau das welches den nächsten Scan durchlauf erhält) keine aktuelle soll - Temp Änderung...

Macht es nicht vielleicht sinn dem Scanner zu sagen das sich die Soll - Temp auf Comfort - Temp verändert? Sodass beim folgendem durchlauf die soll - Temp aus Comfort vorliegt?

Oder habe ich es doch noch grundsätzlich falsch verstanden?

John


ZitatMacht es nicht vielleicht sinn dem Scanner zu sagen das sich die Soll - Temp auf Comfort - Temp verändert? Sodass beim folgendem durchlauf die soll - Temp aus Comfort vorliegt?
Der Scanner liest ja die desiredTemperature immer auch zurück bevor er mit seiner Arbeit beginnt.
Wenn diese also von aussen verändert wird merkt er das in der Regel.

Ich denke für deine Anforderung wäre folgendes optimal:

sobald Anwesenheit vorliegt:
   * Umschaltung auf DesiredMode (geht jetzt schon)
   * den Thermostat-Mode Manu wählen (bisher fix auf Auto und da hakt es derzeit)

Dann wäre das Wochenprogramm ausgehebelt, der Scanner würde sein Arbeit tun und der gewünschte Sollwert bleibt eingestellt.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

der-Lolo

Letzte Heiz-Saison habe ich einfach immer nur zwischen Eco und Comfort hin und her geschaltet, vom Prinzip her würde ich das auch wieder gerne so tun - bin aber wegen dem Scanner jetzt ein bisschen verunsichert...
Ich habe 6 Thermostate davon sind zwei miteinander gepaart da sie sich im selbem Raum befinden, bleiben den überhaupt genug Credits um also an 5 Thermostate die Änderung auf Comfort zu senden?

Nicht das es fehlschlägt weil der Scanner nicht genug Credits übrig gelassen hat...

John

ZitatIch habe 6 Thermostate davon sind zwei miteinander gepaart da sie sich im selbem Raum befinden, bleiben den überhaupt genug Credits um also an 5 Thermostate die Änderung auf Comfort zu senden?

Nicht das es fehlschlägt weil der Scanner nicht genug Credits übrig gelassen hat...

Das ist eigentlich kein Problem. Wenn der Scanner nicht mindestens 300 Credits "sieht", bleibt er inaktiv.
Umgekehrt, wenn für die externen Sollwertumschaltung nicht ausreichend Credits vorhanden sind, gehen die Kommandos nicht etwa
verloren, sondern werden vom MAX-Modul gepuffert und verzögert ausgeführt.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

der-Lolo

Hallo John,
hier hat das zwar eigentlich nichts verloren -
vielleicht kannst Du mir aber trotzdem kurz erläutern wie es zu den vielen command discarded Meldungen im Log kommt...

Zitat2014.10.24 09:35:17 3: MAX ht_Bad: MaxScanRun.615 change leadDesiTemp due manipulation:17.0
2014.10.24 09:35:17 3: MAX ht_Kind: MaxScanRun.615 change leadDesiTemp due manipulation:20.0
2014.10.24 09:35:17 3: MAX ht_Buero: MaxScanRun.615 change leadDesiTemp due manipulation:16.5
2014.10.24 09:35:17 3: MAX ht_Couch: MaxScanRun.753 <<set ht_Couch desiredTemperature auto 20>>
2014.10.24 09:35:17 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:35:12 3: MAX ht_Kind: MaxScanRun.615 change leadDesiTemp due manipulation:20.0
2014.10.24 09:35:12 3: MAX ht_Buero: MaxScanRun.615 change leadDesiTemp due manipulation:16.5
2014.10.24 09:35:12 3: MAX ht_Bad: MaxScanRun.753 <<set ht_Bad desiredTemperature auto 16.5>>
2014.10.24 09:35:12 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:35:07 3: MAX ht_Buero: MaxScanRun.615 change leadDesiTemp due manipulation:16.5
2014.10.24 09:35:07 3: MAX ht_Kind: MaxScanRun.753 <<set ht_Kind desiredTemperature auto 19.5>>
2014.10.24 09:35:07 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:35:02 3: MAX ht_Buero: MaxScanRun.753 <<set ht_Buero desiredTemperature auto 16>>
2014.10.24 09:35:02 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:26:17 3: MAX ht_Couch: MaxScanRun.753 <<set ht_Couch desiredTemperature auto 20.5>>
2014.10.24 09:26:17 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:26:17 3: MAX ht_Couch: MaxScanRun.615 change leadDesiTemp due manipulation:20.5
2014.10.24 09:26:12 3: MAX ht_Couch: MaxScanRun.615 change leadDesiTemp due manipulation:20.5
2014.10.24 09:26:12 3: MAX ht_Bad: MaxScanRun.753 <<set ht_Bad desiredTemperature auto 17>>
2014.10.24 09:26:12 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:26:12 3: MAX ht_Bad: MaxScanRun.615 change leadDesiTemp due manipulation:17.0
2014.10.24 09:26:07 3: MAX ht_Couch: MaxScanRun.615 change leadDesiTemp due manipulation:20.5
2014.10.24 09:26:07 3: MAX ht_Bad: MaxScanRun.615 change leadDesiTemp due manipulation:17.0
2014.10.24 09:26:07 3: MAX ht_Kind: MaxScanRun.753 <<set ht_Kind desiredTemperature auto 20>>
2014.10.24 09:26:07 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:26:07 3: MAX ht_Kind: MaxScanRun.615 change leadDesiTemp due manipulation:20.0
2014.10.24 09:26:02 3: MAX ht_Couch: MaxScanRun.615 change leadDesiTemp due manipulation:20.5
2014.10.24 09:26:02 3: MAX ht_Bad: MaxScanRun.615 change leadDesiTemp due manipulation:17.0
2014.10.24 09:26:02 3: MAX ht_Kind: MaxScanRun.615 change leadDesiTemp due manipulation:20.0
2014.10.24 09:26:02 3: MAX ht_Buero: MaxScanRun.753 <<set ht_Buero desiredTemperature auto 16.5>>
2014.10.24 09:26:02 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:26:02 3: MAX ht_Buero: MaxScanRun.615 change leadDesiTemp due manipulation:16.5
2014.10.24 09:17:17 3: MAX ht_Bad: MaxScanRun.615 change leadDesiTemp due manipulation:17.0
2014.10.24 09:17:17 3: MAX ht_Kind: MaxScanRun.615 change leadDesiTemp due manipulation:20.0
2014.10.24 09:17:17 3: MAX ht_Buero: MaxScanRun.615 change leadDesiTemp due manipulation:16.5
2014.10.24 09:17:17 3: MAX ht_Couch: MaxScanRun.753 <<set ht_Couch desiredTemperature auto 20>>
2014.10.24 09:17:17 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:17:12 3: MAX ht_Kind: MaxScanRun.615 change leadDesiTemp due manipulation:20.0
2014.10.24 09:17:12 3: MAX ht_Buero: MaxScanRun.615 change leadDesiTemp due manipulation:16.5
2014.10.24 09:17:12 3: MAX ht_Bad: MaxScanRun.753 <<set ht_Bad desiredTemperature auto 16.5>>
2014.10.24 09:17:12 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:17:07 3: MAX ht_Buero: MaxScanRun.615 change leadDesiTemp due manipulation:16.5
2014.10.24 09:17:07 3: MAX ht_Kind: MaxScanRun.753 <<set ht_Kind desiredTemperature auto 19.5>>
2014.10.24 09:17:07 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:17:02 3: MAX ht_Buero: MaxScanRun.753 <<set ht_Buero desiredTemperature auto 16>>
2014.10.24 09:17:02 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:08:17 3: MAX ht_Couch: MaxScanRun.753 <<set ht_Couch desiredTemperature auto 20.5>>
2014.10.24 09:08:17 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:08:17 3: MAX ht_Couch: MaxScanRun.615 change leadDesiTemp due manipulation:20.5
2014.10.24 09:08:12 3: MAX ht_Couch: MaxScanRun.615 change leadDesiTemp due manipulation:20.5
2014.10.24 09:08:12 3: MAX ht_Bad: MaxScanRun.753 <<set ht_Bad desiredTemperature auto 17>>
2014.10.24 09:08:12 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:08:12 3: MAX ht_Bad: MaxScanRun.615 change leadDesiTemp due manipulation:17.0
2014.10.24 09:08:07 3: MAX ht_Couch: MaxScanRun.615 change leadDesiTemp due manipulation:20.5
2014.10.24 09:08:07 3: MAX ht_Bad: MaxScanRun.615 change leadDesiTemp due manipulation:17.0
2014.10.24 09:08:07 3: MAX ht_Kind: MaxScanRun.753 <<set ht_Kind desiredTemperature auto 20>>
2014.10.24 09:08:07 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:08:07 3: MAX ht_Kind: MaxScanRun.615 change leadDesiTemp due manipulation:20.0
2014.10.24 09:08:02 3: MAX ht_Couch: MaxScanRun.615 change leadDesiTemp due manipulation:20.5
2014.10.24 09:08:02 3: MAX ht_Bad: MaxScanRun.615 change leadDesiTemp due manipulation:17.0
2014.10.24 09:08:02 3: MAX ht_Kind: MaxScanRun.615 change leadDesiTemp due manipulation:20.0
2014.10.24 09:08:02 3: MAX ht_Buero: MaxScanRun.753 <<set ht_Buero desiredTemperature auto 16.5>>
2014.10.24 09:08:02 2: MAXLAN_Parse: Command was discarded
2014.10.24 09:08:02 3: MAX ht_Buero: MaxScanRun.615 change leadDesiTemp due manipulation:16.5
2014.10.24 08:59:17 3: MAX ht_Bad: MaxScanRun.615 change leadDesiTemp due manipulation:17.0
2014.10.24 08:59:17 3: MAX ht_Kind: MaxScanRun.615 change leadDesiTemp due manipulation:20.0
2014.10.24 08:59:17 3: MAX ht_Buero: MaxScanRun.615 change leadDesiTemp due manipulation:16.5
2014.10.24 08:59:17 3: MAX ht_Couch: MaxScanRun.753 <<set ht_Couch desiredTemperature auto 20>>
2014.10.24 08:59:17 2: MAXLAN_Parse: Command was discarded
2014.10.24 08:59:12 3: MAX ht_Kind: MaxScanRun.615 change leadDesiTemp due manipulation:20.0
2014.10.24 08:59:12 3: MAX ht_Buero: MaxScanRun.615 change leadDesiTemp due manipulation:16.5
2014.10.24 08:59:12 3: MAX ht_Bad: MaxScanRun.753 <<set ht_Bad desiredTemperature auto 16.5>>
2014.10.24 08:59:12 2: MAXLAN_Parse: Command was discarded
2014.10.24 08:59:07 3: MAX ht_Buero: MaxScanRun.615 change leadDesiTemp due manipulation:16.5
2014.10.24 08:59:07 3: MAX ht_Kind: MaxScanRun.753 <<set ht_Kind desiredTemperature auto 19.5>>
2014.10.24 08:59:07 2: MAXLAN_Parse: Command was discarded
2014.10.24 08:59:02 3: MAX ht_Buero: MaxScanRun.753 <<set ht_Buero desiredTemperature auto 16>>


John

Hallo der-Lolo,

das kommt wohl von 00_MAXLAN.pm ab Zeile 721.

Zitat
} elsif($cmd eq "S"){#Response to s:
    $hash->{dutycycle} = hex($args[0]); #number of command send over the air
    readingsSingleUpdate( $hash, 'dutycycle', $hash->{dutycycle}, 1 );

    my $discarded = $args[1];
    $hash->{freememoryslot} = hex($args[2]);
    Log 5, "MAXLAN_Parse: dutycyle $hash->{dutycycle}, freememoryslot $hash->{freememoryslot}";

    Log 3, "MAXLAN_Parse: 1% rule: we sent too much, cmd is now in queue" if($hash->{dutycycle} == 100 && $hash->{freememoryslot} > 0);
    Log 2, "MAXLAN_Parse: 1% rule: we sent too much, queue is full" if($hash->{dutycycle} == 100 && $hash->{freememoryslot} == 0);
    Log 2, "MAXLAN_Parse: Command was discarded" if($discarded);

Wenn du verbose höher stellst wird wohl einiges deutlicher.
Ich vermute, daß die 1% Regel verletzt wurde und daher, das Kommando nicht bearbeitet wurde.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

der-Lolo

Hm - das ist aber komisch, es gab keine besonderen Vorkommnisse, FHEM hat nicht gesteuert, die Thermostate laufen im Wochenprogramm und wurden per Hand manipuliert. Lediglich der Scanner ist aktiv.
Fenster wurden auch nicht geöffnet.

John

Hast du verbose schon mal auf 5 gestellt ?

Es würde mich wundern, wenn im Zusammenhang mit dem vorherigen Fehler eine dieser Fehlermeldungen erscheinen würde,
das der Scanner auch auf die Dutycycle/Credits achtet.

ZitatLog 3, "MAXLAN_Parse: 1% rule: we sent too much, cmd is now in queue" if($hash->{dutycycle} == 100 && $hash->{freememoryslot} > 0);
    Log 2, "MAXLAN_Parse: 1% rule: we sent too much, queue is full" if($hash->{dutycycle} == 100 && $hash->{freememoryslot} == 0);

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP