neue Firmware für alle HmIP-SMO(-A/-2/-A2): v3.6.72

HMIP Sender und Empfänger der Serie Homematic IP

Moderator: Co-Administratoren

Benutzeravatar
Baxxy
Beiträge: 10851
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 610 Mal
Danksagung erhalten: 2230 Mal

Re: neue Firmware für alle HmIP-SMO(-A/-2/-A2): v3.6.72

Beitrag von Baxxy » 22.09.2023, 18:12

Ah ok, das nützt mir ja nichts da ich ja die "Helligkeitsschwelle" eingeben muss (nicht die Helligkeit / ILLUMINATION) die über eine Java-Funktion in der WebUI berechnet wird.
Dachte du hast dir da ein Pendant über NodeRed gezaubert. :wink:
Die "Formel" gibt es hier:
https://github.com/eq-3/occu/blob/maste ... #L883-L993

Benutzeravatar
Henke
Beiträge: 1526
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: neue Firmware für alle HmIP-SMO(-A/-2/-A2): v3.6.72

Beitrag von Henke » 22.09.2023, 18:21

ILLUMINATION kommt nicht über die WebUI. Standard Datenpunkt über RPC und dieser Wert wird wohl auch als Schwellwert verwendet.
Aktuell über RPC "5.62", Vorschlag bei Eco-Modus WebUI "Aktuelle Helligkeit übernehmen (6)"

Hier wird es gerade dunkel und entsprechend kommen Wert:

"CURRENT_ILLUMINATION" - bleibt recht stabil. Vermutung, das ist der gerundete Wert über die 5 Schwellwerte.
"ILLUMINATION" - ändert sich schneller, wird aber vermutlich beim Eco Modus wohl nicht so häufig gesendet.

Benutzeravatar
Baxxy
Beiträge: 10851
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 610 Mal
Danksagung erhalten: 2230 Mal

Re: neue Firmware für alle HmIP-SMO(-A/-2/-A2): v3.6.72

Beitrag von Baxxy » 22.09.2023, 18:37

Ok, hatte da jetzt jetzt was mit den Einstellungen in einer DV durcheinandergebracht.

Hab jetzt mal wieder meine 10 eingestellt und die Bewegungserkennung händisch aktiviert.
Mal schauen ob er sich morgen dann morgens korrekt deaktiviert und abends aktiviert.

Benutzeravatar
Henke
Beiträge: 1526
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: neue Firmware für alle HmIP-SMO(-A/-2/-A2): v3.6.72

Beitrag von Henke » 22.09.2023, 20:17

Ich habe die Werte jetzt bei Sonnenuntergang geloggt. Das könnte ein Problem werden...
CURRENT_ILLUMINATION immer noch bei 5.62 obwohl es draußen dunkel ist.
ILLUMINATION recht früh auf unter 1 und damit wird die genauere Steuerung problematisch.

Benutzeravatar
Baxxy
Beiträge: 10851
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 610 Mal
Danksagung erhalten: 2230 Mal

Re: neue Firmware für alle HmIP-SMO(-A/-2/-A2): v3.6.72

Beitrag von Baxxy » 23.09.2023, 12:02

Zwischenbericht:
Der SMO hat sich heute morgen nicht selbstständig deaktiviert als die Helligkeit über 10 anstieg.
Kann natürlich sein das auch da was geändert wurde und er trotz aktiver Bewegungserkennung keinen Entscheidungswert mehr an die DV-Partner sendet.
Wird später getestet wenn jemand vor Ort ist.
SMO_Trend_4.JPG
Donnerstag Abend hatte er sich (noch mit der alten FW) aktiviert und dann beim Update wohl kurz de- und wieder aktiviert.
Freitag morgen habe ich manuell deaktiviert und abends manuell aktiviert.

Benutzeravatar
jmaus
Beiträge: 9873
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 464 Mal
Danksagung erhalten: 1883 Mal
Kontaktdaten:

Re: neue Firmware für alle HmIP-SMO(-A/-2/-A2): v3.6.72

Beitrag von jmaus » 24.09.2023, 09:39

Baxxy hat geschrieben:
22.09.2023, 18:12
"Helligkeitsschwelle" eingeben muss (nicht die Helligkeit / ILLUMINATION) die über eine Java-Funktion in der WebUI berechnet wird.
Dachte du hast dir da ein Pendant über NodeRed gezaubert. :wink:
Die "Formel" gibt es hier:
https://github.com/eq-3/occu/blob/maste ... #L883-L993
Oh, die Funktion kannte ich noch gar nicht. Ich hatte mal vor Jahren die mathematische Funktion ermittelt wie man die Lux basierten Helligkeitswerte der HmIP Geräte in den 0-255 Range der alten HomeMatic/BidCos Geräte konvertiert bekommt damit man Vergleiche anstellen kann und da kam einfach die folgende mathematische Funktion dabei raus (hier mal als JavaScript):

Code: Alles auswählen

y = Math.round(Math.log(x)/0.0444))
Und die umgekehrte Funktion (0-255 Werte in Lux) ist dann wie folgt:

Code: Alles auswählen

x = Math.round(Math.exp(0.0444*y))
wobei x hier der Helligkeitswert eines HmIP Gerätes in Lux und y dann der „alte“ Wert in 0-255 entspricht der gängigerweise bei HomeMatic/BidCos Geräten Verwendung findet. Natürlich ist/kann die Funktion theoretisch > 255 ausspucken, aber ich verwende diese jetzt schon einige Jahre sehr erfolgreich und auch nach dem SMO Firmware Update konnte ich bis jetzt dafür noch keine signifikante Abweichung festellen. Und zumindest für den alten OC3 Wettersensor ist diese einfache logarithmische Funktion wie auf seite 25 zumindest graphisch dokumentiert: http://www.eq-3.de/Downloads/eq3/downlo ... GE_web.pdf

Käme also auf einen Versuch an ob diese einfache mathematische Funktion ggf ähnlich gut oder sogar vllt besser passt als diese recht komplex aussehende Funktion die eQ3 dort für eine Umrechnung gebaut hat.
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
Baxxy
Beiträge: 10851
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 610 Mal
Danksagung erhalten: 2230 Mal

Re: neue Firmware für alle HmIP-SMO(-A/-2/-A2): v3.6.72

Beitrag von Baxxy » 25.09.2023, 09:57

Also, die verlinkte Berechnungsfunktion wird beim SMO doch nicht (mehr?) benutzt.
Stattdessen wird die Funktion: >> MD_convertIlluminationToDecisionValue_V2 << genutzt.
jmaus hat geschrieben:
24.09.2023, 09:39
ob diese einfache mathematische Funktion ggf ähnlich gut oder sogar vllt besser passt
Die Ergebnisse unterscheiden sich aber speziell im "relevanten Helligkeitsbereich < 30" doch recht deutlich.
Außerdem gehe ich davon aus das die Berechnungsfunktion der WebUI identisch zur internen Berechnung des SMO für den Entscheidungswert ist.
Das zu verifizieren ist mir aber zu aufwändig.

Hier mal die Funktion mit Debug-Ausgaben (eQ-3 vs. JM) zum testen (in der Browserkonsole z.B.):

Code: Alles auswählen

Helligkeit = 16;

function runTest() {
    console.clear(); 
    MD_convertIlluminationToDecisionValue_V2(Helligkeit);   
}
runTest();
MD_convertIlluminationToDecisionValue_V2 = function(value) {
  conInfo("Here we work with the brightness value calculated with the new method");
  var brightness = (isNaN(value)) ? 0 :  parseInt(Math.abs(value) * 100),
    convBrightness,
    offset_x,
    value_a0,
    value_a1,
    variant,
    valueValid = true;
    console.log("Input - Helligkeit:", value);
    console.log("Parsed - Helligkeit:", brightness);

  switch (true) {
    case (brightness <= Math.pow(10,1)):
      variant = 1;
      offset_x = 0;
      value_a0 = 0;
      value_a1 = 1;
      break;
    case (brightness <= Math.pow(10,2)):
      variant = 2;
      offset_x = 10;
      value_a0 = 10;
      value_a1 = 0.2;
      break;
    case (brightness <= Math.pow(10,3)):
      variant = 3;
      offset_x = 100;
      value_a0 = 28;
      value_a1 = 0.05;
      break;
    case (brightness <= Math.pow(10,4)):
      variant = 4;
      offset_x = 1000;
      value_a0 = 73;
      value_a1 = 0.005;
      break;
    case (brightness <= Math.pow(10,5)):
      variant = 5;
      offset_x = 10000;
      value_a0 = 118;
      value_a1 = 0.0005;
      break;
    case (brightness <= Math.pow(10,6)):
      variant = 6;
      offset_x = 100000;
      value_a0 = 163;
      value_a1 = 0.00005;
      break;
    case (brightness <= Math.pow(10,7)):
      variant = 7;
      offset_x = 1000000;
      value_a0 = 208;
      value_a1 = 0.000005;
      break;
    default: valueValid = false;
      var Offset = offset_x;
    console.log("Offset_X:", Offset);

  }
  if (valueValid) {
    console.log("Variante: ",variant);
    console.log("---------------------"); console.log("Offset_X:", offset_x);
    console.log("Value_A0:", value_a0); console.log("Value_A1:", value_a1); 
    console.log("---------------------");
    convBrightness = brightness - offset_x;
    convBrightness = convBrightness * value_a1;
    convBrightness = convBrightness + value_a0;
    convBrightness = convBrightness + 0.5;
    var output = parseInt(convBrightness); 
    console.log("Helligkeitsschwelle eQ-3:", output);
  // Jens Maus Berechnung Start
  // https://homematic-forum.de/forum/viewtopic.php?f=58&t=79849&start=20#p778525
     var output_jm = Math.round(Math.log(value)/0.0444);
     console.log("Helligkeitsschwelle JM:", output_jm);
     var recalculated_jm = Math.round(Math.exp(0.0444*output_jm));
     console.log("Helligkeit zurückberechnet JM:", recalculated_jm);
  // Jens Maus Berechnung Ende
    return parseInt(convBrightness);
  }
  return 253;
  console.log("Returned 253");
};
Zum SMO mit der 3.6.72 allgemein.
Nachdem mich @Henke auf die Diskrepanz zwischen "Helligkeitsschwelle für Entscheidungswerte in DV's" [Helligkeit wird umgerechnet in 0-255] und dem "Unterer Grenzwert für bedingtes Senden" für die ECO-Funktion [hier wird nichts umgerechnet sondern direkt die Helligkeit genutzt] läuft das Teil "*eigentlich" wie vorher.

*eigentlich weil...
  • ich in der Tat die Empfindlichkeit drastisch reduzieren musste, von 80% auf 50%
  • der SMO zwar weiterhin die Sendung der Bewegung [an die Zentrale sowie an DV-Partner] korrekt unterhalb von "Unterer Grenzwert für bedingtes Senden" einstellt, dieses aber nicht mehr erkenntlich ist weil die "Bewegungserkennung" dabei nicht mehr deaktiviert wird.
Letzteres ist eher unschön, da man auf die Schnelle nun nicht mehr sieht ob der SMO aktiv ist oder nicht.
Andererseits konnte ich die zykl. Meldungen wieder auf "Standard" stellen, vorher musste ich die optimieren da der SMO sonst (bei zu langer Inaktivität dank Eco-Modus) eine Komm-Störung brachte.

Summa summarum:
Firmware 3.6.72 bleibt drauf.
SMO aktiv/inaktiv wird jetzt über eine SysVar dargestellt.


Noch ein Edit:
Ich habe mal die Funktion per Homematic-Script nachgebaut, falls es wer braucht.

Code: Alles auswählen

!- Umrechnung Helligkeit -> Helligkeitsschwelle für z.B. HmIP-SMO FW:3.6.72
!- Forum-Link: https://homematic-forum.de/forum/viewtopic.php?f=58&t=79849&p=778615#p778615
!- basiert auf der WebUI-Funktion: https://github.com/eq-3/occu/blob/b7cd484b6e9c6d151ed3c559c2dec00567ed96fb/WebUI/www/config/easymodes/js/ic_functions.js#L939-L995
!- v1.0 / 25.09.23
!- by Baxxy
var Helligkeit = 123.45;
WriteLine("Helligkeit: "#Helligkeit);
var brightness = ((Helligkeit.Abs()) * 100).ToInteger();
var convBrightness;
var offset_x;
var value_a0;
var value_a1;

if (( brightness >= 0 ) && ( brightness <= 10 )) { offset_x = 0; value_a0 = 0; value_a1 = 1; }
 elseif (( brightness > 10 ) && ( brightness <= 100 )) { offset_x = 10; value_a0 = 10; value_a1 = 0.2; }
  elseif (( brightness > 100 ) && ( brightness <= 1000 )) { offset_x = 100; value_a0 = 28; value_a1 = 0.05; }
   elseif (( brightness > 1000 ) && ( brightness <= 10000 )) { offset_x = 1000; value_a0 = 73; value_a1 = 0.005; }
    elseif (( brightness > 10000 ) && ( brightness <= 100000 )) { offset_x = 10000; value_a0 = 118; value_a1 = 0.0005; }
     elseif (( brightness > 100000 ) && ( brightness <= 1000000 )) { offset_x = 100000; value_a0 = 163; value_a1 = 0.00005; }
      elseif (( brightness > 1000000 ) && ( brightness <= 10000000 )) { offset_x = 1000000; value_a0 = 208; value_a1 = 0.000005; }

convBrightness = brightness - offset_x; WriteLine(convBrightness);
convBrightness = convBrightness.ToFloat();
convBrightness = convBrightness * value_a1; WriteLine(convBrightness);
convBrightness = convBrightness + value_a0; WriteLine(convBrightness);
convBrightness = convBrightness + 0.5; WriteLine(convBrightness);
convBrightness = convBrightness.ToInteger(); WriteLine("Helligkeitsschwelle: "#convBrightness);

Bobbin
Beiträge: 9
Registriert: 05.06.2019, 16:51
Danksagung erhalten: 2 Mal

Re: neue Firmware für alle HmIP-SMO(-A/-2/-A2): v3.6.72

Beitrag von Bobbin » 29.09.2023, 05:05

<del>Es scheint, ich habe mir die beiden SMO-A-2 mit dem Update gebrickt: die Gerätedatei stand seit Tagen im Status 'wird zum Gerät übertragen'. Nun haben beide Geräte keine Gerätekommunikation mehr.
Nach einem Werksreset stehen beide mit orange blinkender LED im Anlernmodus, aber die CCU findet nichts. Wat nu?!</del>

Bedienerfehler: die CCU3 hatte kein Internet.

Danke - Gruß Bobbin
CCU3 mit 1x HM-OU-LED16, 1x HmIP-ASIR, 2x HmIP-eTRV-2, 1x HmIP-FSM, 1x HmIP-MIO16-PCB, 2x HmIP-MOD-TM, 5x HMIP-PSM, 1x HmIP-RC8, 1x HmIP-SLO, 2x HmIP-SPI, 1x HmIP-STHO, 3x HmIP-SWD, 4x HMIP-SWDO, 2x HmIP-SWSD, 1x HMIP-WRC2, 1x HmIP-WRC6, 1x VIR-HUE-GTW

Aquaplex
Beiträge: 300
Registriert: 16.11.2011, 18:16
System: CCU und Access Point
Hat sich bedankt: 26 Mal
Danksagung erhalten: 8 Mal

Re: neue Firmware für alle HmIP-SMO(-A/-2/-A2): v3.6.72

Beitrag von Aquaplex » 18.12.2023, 08:40

Ich würde den Thread gerne noch mal hochholen und in die Runde fragen, wie die "neuen" Helligkeitswerte jetzt zu deuten sind?

Ich habe seit dem Update Probleme mit einer Direktverknüpfung. Die hat vorher jahrelang funktioniert und jetzt wird die Außenlampe manchmal nicht angesteuert. Ich habe in der DV als ConditionValue 12 stehen, vermutlich passt das mit den "neuen" Helligkeitswerten des SMO nicht mehr, auch wenn in der DV doch eigentlich unverändert der Bereich 0...255 verwendet werden sollte, oder?

In der WebUI werden mir weiterhin im Dämmerungsbereich sehr niedrige Werte (0...3) angezeigt. Von daher müsste die DV ja immer ausgeführt werden, was aber nicht der Fall ist. Wer kann denn da etwas Licht ins Dunkel bringen? :lol:
HmIP auf Pi3B+ mit RaspberryMatic und neuem Funk-Modul sowie 3 HAPs / Etwa 150 IP-Geräte

Antworten

Zurück zu „HomeMatic IP Aktoren und Sensoren“