Seite 1 von 3

Redmatic / Node-RED / HmIP-BS2 (& HmIP-PS-2, HmIP-SWDO-2, HmIP-BSM)

Verfasst: 06.01.2024, 14:05
von Phil_muc
Hallo zusammen,

wie ich leider nach dem Kauf diverser neuer Produkte feststellen musste, werden die neueren Geräte von HmIP bei der Einbindung ins HomeKit nicht mehr unterstützt, da der Entwickler diese nicht weiter integriert. Das habe ich soweit verstanden.

Mein aktueller Einkauf waren HmIP-PS-2 (Schaltsteckdose) , HmIP-SWDO-2 (Fensterkontakt), HmIP-BSM (Schalt-Mess-Aktor) und HmIP-BS2 (Schaltaktor - 2-fach).

1. Den HmIP-SWDO-2 habe ich mit "cp hmip-swdo.js hmip-swdo-2.js" zum Laufen bekommen.
2. Der HmIP-BSM lief von Anfang an.
3. Den HmIP-PS-2 habe ich mit "cp hmip-ps.js hmip-ps-2.js" nicht zum Laufen bekommen. In der CCU3 wird er jedoch als "HmIP-PS-2 9YM" aufgeführt. Somit habe ich ihn mit "cp hmip-ps.js hmip-ps-2_9ym.js" zum Laufen bekommen.
4. Den HmIP-BS2 habe ich mit "cp hmip-bsm.js hmip-bs2.js" (halbwegs) zum Laufen bekommen.

Beim HmIP-BS2 fängt es daher nun mit nachhaltigen Problemen an. Dieser hat zwei Kanäle. Im "alten" Code vom BSM ist nur der Kanal 4 ausgeführt. Ich benötige aber noch den Kanal 8. Also habe ich den Code der hmip-bs2.js wie folgt ergänzt:

Code: Alles auswählen

const Accessory = require('./lib/accessory');

module.exports = class HmipBsm extends Accessory {
    init(config) {
        this.addService('Lightbulb', config.name)
            .get('On', config.deviceAddress + ':4.STATE')
            .set('On', config.deviceAddress + ':4.STATE');
	this.addService('Lightbulb', config.name)
	    .get('On', config.deviceAddress + ':8.STATE')
	    .set('On', config.deviceAddress + ':8.STATE');
    }
};
Es sind also die drei Zeilen "this.addService [...] 8. STATE'); ergänzt worden.

Unter Node-RED ist der Aktor zwar immer noch nicht mit beiden Kanälen dargestellt, dafür im HomeKit nun wie folgt zusammengefasst:
IMG_1624.PNG
Klickt man dann "großes Licht" gelangt man auf folgende "Unterseite":
IMG_1625.PNG
Grundsätzlich ist dies schon mal erfreulich, da ich zumindest beide Stromkreise nun per HomeKit schalten kann.

Für mich stellt sich aber nun die Frage, was ich im Code ändern muss, damit die beiden Kanäle "4" und "8" als getrennte Geräte aufgeführt werden und ich nicht den Umweg über die Unterseite gehen muss. Ich bin nun hier an meine Grenzen gestoßen.

Die doppelte Namensvergabe ("Fensterbad großes Licht") stört mich an dieser Stelle (noch) nicht, da ich diese wohl mit der Codeänderung "config.name" in "ccu.channelNames[config.deviceAddress + ':4]" ändern kann.

Vielen Dank für die Unterstützung!

Viele Grüße,

Phil

Re: Redmatic / Node-RED / HmIP-BS2 (& HmIP-PS-2, HmIP-SWDO-2, HmIP-BSM)

Verfasst: 06.01.2024, 14:50
von Henke
Als Verdacht...

nodes\redmatic-homekit-homematic-devices.html

Code: Alles auswählen

                            case 'hmip-bsm':
                            case 'hmip-bs2': // <- hinzufügen
                                addChannels(addr, 4, 4, {type: switchTypes});
                                break;

NodeRed neu starten und FlowFenster neu laden nicht vergessen.

Re: Redmatic / Node-RED / HmIP-BS2 (& HmIP-PS-2, HmIP-SWDO-2, HmIP-BSM)

Verfasst: 06.01.2024, 14:54
von Baxxy
Direkt helfen kann ich dir nicht.
Ich würde aber die PCBS2 (sofern vorhanden) als Template für den BS2 nehmen.
Die sind beide "Kanaltechnisch" identisch.

Re: Redmatic / Node-RED / HmIP-BS2 (& HmIP-PS-2, HmIP-SWDO-2, HmIP-BSM)

Verfasst: 06.01.2024, 15:46
von Phil_muc
Vielen Dank an @Henke und @Baxxy. Dies hat mir schon weitergeholfen (auch wenn es im Ergebnis noch nichts hilft):

Vorher sah es unter Node-RED so aus:
1.png
1.png (6.54 KiB) 459 mal betrachtet
Ich habe also in der redmatic-homekit-homematic-devices.html die Zeile

Code: Alles auswählen

case 'hmip-bs2':
ergänzt.

Dann sah es unter Node-RED so aus:
2.png
2.png (9.69 KiB) 459 mal betrachtet
Der weitere Channel hat also dazu geführt, dass ich die Art des Schalters wählen kann. Aber mir fehlte immer noch der Kanal 8. Also habe ich die oben ergänzte Zeile wieder gelöscht und folgenden kompletten neuen Eintrag angelegt:

Code: Alles auswählen

case 'hmip-bs2':                                    
    addChannels(addr, 4, 4, {type: switchTypes});   
    addChannels(addr, 8, 8, {type: switchTypes});   
    break;  
Dies hat nun dazu geführt, dass es unter Node-RED so aussieht:
3.png
3.png (12.3 KiB) 459 mal betrachtet
Damit sind nun auch im Node-RED alle Kanäle vorhanden.

Dann habe ich nun "cp hmip-pcbs2.js hmip-bs2.js" ausgeführt. In der dritte Zeile steht nun

Code: Alles auswählen

module.exports = class HmipPcbs2 extends Accessory {
Dies habe ich nun nicht geändert.

Leider wird der Aktor von HomeKit weiterhin mit Unterseite angezeigt. Mittlerweile habe ich die Befürchtung, dass dies ein Apple-"Problem" ist!?

Viele Grüße,

phil

Re: Redmatic / Node-RED / HmIP-BS2 (& HmIP-PS-2, HmIP-SWDO-2, HmIP-BSM)

Verfasst: 06.01.2024, 16:01
von Phil_muc
Es scheint tatsächlich ein Apple-"Problem" zu sein:

Geht man in HomeKit, erhält man folgende Ansicht:
IMG_1625.PNG
Geht man dann in die Geräteeinstellungen des Schalters, sieht man folgende Einstellung:
IMG_1626.PNG
Dies kann man ändern, so dass es dann so aussieht:
IMG_1627.PNG
Dann sieht es tatsächlich so aus:
IMG_1628.PNG
Jetzt stört mich tatsächlich nur noch, dass es unter "Sonstiges" und nicht unter "Lichtquelle" ausgeführt ist. Kann ich dies noch ändern?

Re: Redmatic / Node-RED / HmIP-BS2 (& HmIP-PS-2, HmIP-SWDO-2, HmIP-BSM)

Verfasst: 06.01.2024, 16:07
von Henke
Vielleicht deine alte Vorlage nehmen mit Lightbulb und nicht mixen mit Lightbulb und Switch?

Re: Redmatic / Node-RED / HmIP-BS2 (& HmIP-PS-2, HmIP-SWDO-2, HmIP-BSM)

Verfasst: 06.01.2024, 16:52
von Phil_muc
@Henke:

Das war es. Vielen, vielen Dank für den Support.

Ich hoffe, dass auch andere Nutzer davon profitieren können!

Re: Redmatic / Node-RED / HmIP-BS2 (& HmIP-PS-2, HmIP-SWDO-2, HmIP-BSM)

Verfasst: 06.01.2024, 17:56
von Phil_muc
Noch eine abschließende Anmerkung:

Nach wie vor hatte ich in Node-RED meine drei HmIP-PS-2 (Schaltsteckdose) nicht gesehen. Im HomeKit dagegen schon.

Daher habe ich auch hier, gemäß der Empfehlung von @Henke den Code in der redmatic-homekit-homematic-devices.html ergänzt.

Der Ursprungs-Code lautete wie folgt:

Code: Alles auswählen

case 'hmip-ps':
case 'hmip-psm':
   addChannels(addr, 3, 3, {type: outletTypes});
   break;

Ich habe ihn dann - vorsorglich in verschiedensten Varianten - wie folgt ergänzt:

case 'hmip-ps':
case 'hmip-psm':
case 'hmip-ps-2 9ym':
case 'hmip-ps-2-9ym':
case 'hmip-ps-2_9ym':
case 'hmip-ps-2':
   addChannels(addr, 3, 3, {type: outletTypes});
   break; 
Dies leider ohne Erfolg. Ich bekam die drei Geräte nicht im Node-RED angezeigt.

Daher habe ich dann im homematic-devices-Ordner noch ein Duplikat mit

Code: Alles auswählen

cp hmip-ps-2_9ym.js 'hmip-ps-2 9ym.js'
angelegt.

Nun sehe ich auch meine Schaltsteckdose in RED-Note.

Re: Redmatic / Node-RED / HmIP-BS2 (& HmIP-PS-2, HmIP-SWDO-2, HmIP-BSM)

Verfasst: 06.01.2024, 18:59
von Matü
Oh man, ich glaube, darauf habe ich gewartet. Ich muss nur noch durchsteigen. Bei mir sehe ich die neuen Geräte auch nicht im Node-RED...

Re: Redmatic / Node-RED / HmIP-BS2 (& HmIP-PS-2, HmIP-SWDO-2, HmIP-BSM)

Verfasst: 06.01.2024, 19:05
von Phil_muc
@Matü

Ist eigentlich total easy. Wichtig sind:

1. ssh-Zugang;
2. Der Ordner /usr/local/addons/redmatic/lib/node_modules/redmatic-homekit/homematic-devices;
3. Der Ordner /usr/local/addons/redmatic/lib/node_modules/redmatic-homekit/nodes;
4. Die ssh-Befehle "cp", "vi", editieren mit "i", "ESC" und ":wq" für speichern und beenden;

Viel Spaß und Erfolg!