HM-MOD-EM-8 8kanal Sender als TFK konfigurieren

Kabellose und kabelgebundene Sender und Empfänger der klassischen Homematic-Serie

Moderator: Co-Administratoren

dumens
Beiträge: 35
Registriert: 07.10.2010, 18:57

HM-MOD-EM-8 8kanal Sender als TFK konfigurieren

Beitrag von dumens » 08.01.2024, 15:22

Hallo zusammen,
ich hatte sied langer Zeit einen HM-MOD-EM-8 8kanal Sender der als TFK konfiguriert war im Einsatz der auch problemlos funktioniert hat.
Jetzt wollte ich diesen in einem System mit der aktuellen Raspberrymatic neu einsetzen und hab ihn auf Werkseinstellung zurückgesetzt und neu angemeldet, was auch funktioniert hat. Nur lässt er sich in der Raspberrymatic nicht mehr konfigurieren. Geht man in die Einstellungen zu den Kanälen ist die Funktion um die Funktion als TFK eizustellen abgeblendet und bleibt in der Funktion Taster.
Hat einer das Problem schon mal gehabt und irgendwie gelöst damit man die Kanäle auch in der Raspberrymatic wieder als TFK verwenden kann?
Viele Grüße aus Bayern...


Matthias K.
Beiträge: 1178
Registriert: 14.02.2016, 12:32
System: Alternative CCU (auf Basis OCCU)
Wohnort: Heidenheim
Hat sich bedankt: 57 Mal
Danksagung erhalten: 229 Mal

Re: HM-MOD-EM-8 8kanal Sender als TFK konfigurieren

Beitrag von Matthias K. » 08.01.2024, 15:41

Komisch dass alle das jetzt plötzlich bemerken, wo doch augenscheinlich der entsprechende Quelltext seit Jahren nicht verändert wurde...

jp112sdl
Beiträge: 12149
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 854 Mal
Danksagung erhalten: 2157 Mal
Kontaktdaten:

Re: HM-MOD-EM-8 8kanal Sender als TFK konfigurieren

Beitrag von jp112sdl » 08.01.2024, 15:46

Möglicherweise wurde das 'disabled' Attribut früher an anderer Stelle wieder entfernt (webui.js !?)

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

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

Re: HM-MOD-EM-8 8kanal Sender als TFK konfigurieren

Beitrag von Baxxy » 08.01.2024, 15:49

Ja, das ist äußerst suspekt.

Ich denke auch das es noch irgendwo einen zweiten Faktor gibt/gab.
Ohne eigenes Testgerät bin ich aber raus.
Ich würd's an der WebUI vorbei mit Script/SDV/Homematic-Manager ändern.

jp112sdl
Beiträge: 12149
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 854 Mal
Danksagung erhalten: 2157 Mal
Kontaktdaten:

Re: HM-MOD-EM-8 8kanal Sender als TFK konfigurieren

Beitrag von jp112sdl » 08.01.2024, 16:11

Baxxy hat geschrieben:
08.01.2024, 15:49
Ich denke auch das es noch irgendwo einen zweiten Faktor gibt/gab.
Ja, hab es wohl gefunden. ShowHintIfProgramExists in webui.js, da würde das "disabled" wieder auf false gesetzt werden...

In 3.69

Code: Alles auswählen

ShowHintIfProgramExists = function(id, ch) {
  homematic("Channel.hasProgramIds", {id: id}, function(result, error) {
    if (result) {
      showHintPrgLink(ch, true);
    } else {
      if(arChnHasLinks[parseInt(ch)] != true) {
        var elm = jQuery("#separate_CHANNEL_" + ch + "_1");
        jQuery(elm).prop("disabled", false);
      }
    }
  });
};
In 3.71

Code: Alles auswählen


ShowHintIfProgramExists = function(id, ch) {
  homematic("Channel.hasProgramIds", {id: id}, function(result, error) {
    if (result) {
      showHintPrgLink(ch, true);
    } else {
      if(arChnHasLinks[parseInt(ch)] != true) {
        var elm = jQuery(".j_multiMode_" + ch). find("[name='CHANNEL_OPERATION_MODE']")[0];
        jQuery(elm).prop("disabled", false);
      }
    }
  });
};
Also insbesondere

Code: Alles auswählen

        var elm = jQuery("#separate_CHANNEL_" + ch + "_1");
wurde zu

Code: Alles auswählen

        var elm = jQuery(".j_multiMode_" + ch). find("[name='CHANNEL_OPERATION_MODE']")[0];
Die notwendigen Änderungen in der /www/config/easymodes/etc/getRemoteModEM8HTML.tcl wurden nicht gemacht.
Daher passt das jQuery Zeugs nicht und der findet keine Elemente, die enabled werden können.
Baxxy hat geschrieben:
08.01.2024, 15:49
Ohne eigenes Testgerät bin ich aber raus.
Das Schöne bei BidCos ist ja, dass man nur eine .dev Datei von jemandem mit Gerät bekommen muss und man gar kein eigenes braucht :)

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

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

Re: HM-MOD-EM-8 8kanal Sender als TFK konfigurieren

Beitrag von Baxxy » 08.01.2024, 16:21

Ah ja. Hat es eQ-3 also mal wieder vergeigt.

Was wäre die beste Option?
Patchen der /www/config/easymodes/etc/getRemoteModEM8HTML.tcl weil wir nicht wissen was noch alles an den Änderungen in der Funktion: "ShowHintIfProgramExists" hängt?

jp112sdl
Beiträge: 12149
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 854 Mal
Danksagung erhalten: 2157 Mal
Kontaktdaten:

Re: HM-MOD-EM-8 8kanal Sender als TFK konfigurieren

Beitrag von jp112sdl » 08.01.2024, 19:50

Baxxy hat geschrieben:
08.01.2024, 16:21
Patchen der /www/config/easymodes/etc/getRemoteModEM8HTML.tcl
Nee, weil der neue Code auch nach
jp112sdl hat geschrieben:
08.01.2024, 16:11
[name='CHANNEL_OPERATION_MODE']
sucht. Beim HM-MOD-RE-8 gibt es aber nur den Parameter CHANNEL_FUNCTION.
Baxxy hat geschrieben:
08.01.2024, 16:21
Was wäre die beste Option?
Nach

Code: Alles auswählen

var elm = jQuery(".j_multiMode_" + ch). find("[name='CHANNEL_OPERATION_MODE']")[0];
prüfen, ob elm === undefined ist und dann die alte Variante aufrufen.

Code: Alles auswählen

if (elm === undefined) elm = jQuery("#separate_CHANNEL_" + ch + "_1");
Klappt bei meinem Sofa-Test zumindest ab Kanal 2.
Bei Kanal 1 steht trotz blankem Gerät "Es besteht mindestens eine Verknüpfung. Daher sind einige Funktionen gesperrt.".
Das ist dann noch mal eine andere Baustelle....

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

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

Re: HM-MOD-EM-8 8kanal Sender als TFK konfigurieren

Beitrag von Baxxy » 08.01.2024, 20:18

So? Oder hattest du die geschweiften Klammern bewusst weggelassen?
(ich kann kein js... :shock: )

Code: Alles auswählen

ShowHintIfProgramExists = function(id, ch) {
    homematic("Channel.hasProgramIds", {id: id}, function(result, error) {
      if (result) {
        showHintPrgLink(ch, true);
      } else {
        if(arChnHasLinks[parseInt(ch)] != true) {
          var elm = jQuery(".j_multiMode_" + ch). find("[name='CHANNEL_OPERATION_MODE']")[0];
          if (elm === undefined) { elm = jQuery("#separate_CHANNEL_" + ch + "_1") };
          jQuery(elm).prop("disabled", false);
        }
      }
    });
  };
Dann brauche ich nur noch ne .dev zum testen. :wink:

jp112sdl
Beiträge: 12149
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 854 Mal
Danksagung erhalten: 2157 Mal
Kontaktdaten:

Re: HM-MOD-EM-8 8kanal Sender als TFK konfigurieren

Beitrag von jp112sdl » 08.01.2024, 20:19

jp112sdl hat geschrieben:
08.01.2024, 19:50
Bei Kanal 1 steht trotz blankem Gerät "Es besteht mindestens eine Verknüpfung. Daher sind einige Funktionen gesperrt.".
Das ist dann noch mal eine andere Baustelle....
Ahja, das kommt vom

Code: Alles auswählen

showHintPrgLink = function(channel, prgExists) {
  var channel = parseInt(channel),
  classMultiMode = jQuery(".j_multiMode_" + channel)[0],
  tableElm = jQuery(".ProfileTbl tbody").parent().parent()[channel],
  elm = jQuery(".j_multiMode_" + channel). find("[name='CHANNEL_OPERATION_MODE']")[0];

  jQuery(elm).prop("disabled", true);

  if (typeof classMultiMode == "object") {
    if (prgExists) {
      jQuery(classMultiMode).after("<div class=\"attention\" style='padding: 2px;'>" + translateKey("hintPrgExists") + "</div>");
    } else {
      arChnHasLinks[channel] = true;
      jQuery(classMultiMode).after("<div class=\"attention\" style='padding: 2px;'>" + translateKey("hintLinkExists") + "</div>");
    }
  } else {
    if (prgExists) {
      jQuery(tableElm).append("<div class=\"attention\" style='padding: 2px;'>" + translateKey("hintPrgExists") + "</div>");
    } else {
      arChnHasLinks[channel] = true;
      jQuery(tableElm).append("<div class=\"attention\" style='padding: 2px;'>" + translateKey("hintLinkExists") + "</div>");
    }
  }
};
Weil hier classMultiMode undefined ist, wird in den else-Zweig abgebogen. Und da auch keine Programme zum Kanal existieren, wird "behauptet" arChnHasLinks[channel] = true;


"Früher" sah die Methode einfach so aus:

Code: Alles auswählen

showHintPrgLink = function(channel, prgExists) {
  var channel = parseInt(channel),
  tableElm = jQuery(".ProfileTbl tbody").parent().parent()[channel],
  elm = jQuery("#separate_CHANNEL_" + channel + "_1");

  jQuery(elm).prop("disabled", true);
  if (prgExists) {
    jQuery(tableElm).append("<div class=\"attention\" style='padding: 2px;'>"+translateKey("hintPrgExists")+"</div>");
  } else {
    arChnHasLinks[channel] = true;
    jQuery(tableElm).append("<div class=\"attention\" style='padding: 2px;'>"+translateKey("hintLinkExists")+"</div>");
  }
};

Also dieses neue multiMode-Geraffel kommt von irgendeinem HmIP-Kram, was da jetzt neu implementiert wurde und die alten Abhängigkeiten werden nicht berücksichtigt.

Wenn man jetzt noch die showHintPrgLink anpasst, wer weiß, was dann als nächstes für ein Folgefehler auftritt.

Ich bin da raus. Soll einer mit CCU3 ein Ticket bei eQ-3 aufmachen.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren (klassisch)“