Broadlink RM Modul

Ich mache morgen nach der Arbeit weiter, melde mich dann wieder.
Danke daweil & Good Night

Werde ich morgen gleich probieren. Kann ich das über Modul update nachziehen oder neuinstallation?
Gruß Nils

Ne es reicht in der Regel immer ein Update eine Neuinstallation ist nicht notwendig.

Hallo Fonzo,
ich kann seit dem letzten Update keine neuen Befehle anlegen.
Geräte und Command und Commands wird angelegt aber die Standardaktion wird nicht mehr gesetzt.
Folglich sind die Geräte im Webfront nicht bedienbar.
So sieht die Fehlermeldung beim anlernen aus:


Warning:  Missing argument 1 for BroadlinkDevice::EnableWFVariable(), called in /var/lib/symcon/scripts/__generated.inc.php on line 1747 and defined in /var/lib/symcon/modules/IPSymconBroadlinkRM/Broadlink Device/module.php on line 50
Notice:  Undefined variable: ident in /var/lib/symcon/modules/IPSymconBroadlinkRM/Broadlink Device/module.php on line 52
Warning:  Ident darf nicht leer sein in /var/lib/symcon/modules/IPSymconBroadlinkRM/Broadlink Device/module.php on line 52string(4529) "
{"code":1,"hex":

Mache ich irgendwas falsch?
Oder hat sich etwas bei der Anlernprozedur geändert?

Das sieht so aus als ob die generated.inc.php mal wieder einen Hau weg hat. Das passiert leider wenn Methoden in PHP Modulen geändert werden und IP-Symcon es leider mal wieder nicht schaft die generated.inc.php zu aktualisieren.
Stoppe mal den IP-Symcon Dienst, lösche dann die Datei generated.inc.php im scripts Ordner und starte dann den IP-Symcon Dienst neu. Gib dann bitte noch mal Rückmeldung ob danach der Fehler immer noch auftaucht.

Das sieht dann eigentlich anders aus, weil dann nix mehr geht.
Und löschen braucht man die Datei auch nicht!
IPS würde das glattziehen beim nächsten Start.

@Fonzo:
In dem Modul werde aus einer Instanz Variablen in einer anderen Instanz erstellt, das wird demnächst wohl nicht mehr funktionieren und entspricht so gar nicht dem Best Practice.
Und bei vielen Public Methoden fehlen die Typ hints. Das wird auch später Fehler und keine Warnungen mehr werfen.

Michael

War nur eine Vermutung das der Parameter nicht in der generated.inc.php vorhanden ist und es deshalb zur Fehlermeldung kommt. Hast Du auf die Schnelle eine andere Idee was das sein kann?

Das werde ich wohl noch abändern das war jetzt auf die Schnelle die einfachste Lösung, das mit den Typ Hint schaue ich mir dann mal an, danke für den Hinweis.

Nach nur Neustart von Symcon geht es wieder.
Danke

Ein Glück, dann war es wohl doch die „böse“ generated.inc.php die Probleme gemacht hat. In der Regel lohnt es sich immer nach einem Modul Update den Dienst neu zu starten falls es Probleme gibt.

Moin,

kann ich das Modul auch irgendwie anders einrichten als über die „Discover“ Funktion?
Ich habe ein segmentiertes Netz (Broadcast wird nicht geroutet) und daher funktioniert das leider so nicht.

Danke und Gruß, Lutz

Nun dazu müsste dann auf alle Fälle die IP Adresse, MAC und der exakte Devicetype bekannt sein und von Hand eingetragen werden. Gerade beim Devicetype weis ich nicht wo man diesen z.B. in der App oder sonst wo nachschauen kann ohne diesen vom Gerät auszulesen.
Das zweite Problem was ich eher sehe das nach dem Broadlink RM2 network protocol auch zum Senden 255.255.255.255 verwendet wird. Wenn bei Dir ein Broadcast schon nicht geroutet wird und ein Discovery so nicht möglich ist, wird dann wohl auch kein Schalten des Geräts über 255.255.255.255 möglich sein wenn das Gerät in einem anderen Netzwerk sitzt als IP-Symcon.

Falls Dir der exakte Devicetype und MAC bekannt sein sollte kannst Du ja Bescheid geben dann könnte man zumindest das so ergänzen, dass dies bei Bedarf auch manuell eingetragen werden kann. Ob dann jedoch damit auch ein Senden möglich ist weis ich nicht, denn das dürfte ja wahrscheinlich das gleiche Problem sein wie beim Discovery.

Hi fonzo,

so wie es aussieht hast du leider Recht.
Ich habe temporär ein VLAN aus dem internen Bereich in ein WLAN gelegt (=gleicher Adressbereich wie Symcon), das A1 dort angemeldet, dann funktioniert die Anbindung wunderbar. Melde ich das A1 nun wieder im richtigen WLAN an klappt die Kommunikation nicht mehr, auch wenn ich in der Instanz dann die andere IP korrekt eintrage.

Naja, gefällt mir zwar nicht - dafür sind die Dinger günstig :smiley:

Danke fürs Modul!

Gruß, Lutz

So aufgrund des weihnachtsstresses jetzt erst dazu gekommen.
es klappt allerdings legt er eine weitere variable dafür an, ist das so gewollt bzw. nicht anders umsetzbar?
Glg
Nils

Das ist nicht anders umsetzbar, da ein Variablenprofil in IP-Symcon zur Zeit auf 32 Assoziationen beschränkt ist, wenn also mehr Assoziationen benutzt werden sollen wird auch eine weitere Variable benötigt.

Hallo Fonzo,
ein Freund von mir hat auch so einen RM Pro +
laut ebay Model 2017 neueste Version, dieser funktioniert nicht mit dem Modul,
kommt die gleiche Meldung wie bei Alarmkette.
Ich habe mal das Typenschild eingefügt.

Mein funktionierender hat nachfolgendes Typenschild

Meinst Du die Versionen werden unterschiedlich angesprochen?

Kommt da also bei Discover auch ein leerer Array als Response? Devtype wird dann auch keiner zurückgegeben? Steht irgendwas im Debug Fenster des IO?

Das weis ich jetzt nicht kann ich aber versuchen herauszubekommen.

Ja auch leeres Array,
im Debug habe ich nicht nachgesehen, aber beim Anlegen und Discover der I/O Instanz kam definitiv keine Fehlermeldung.

Kannst Du mal eventuell python-broadlink ausprobieren und schauen ob damit irgendwas funktioniert? Letztendlich basiert das schalten auf Broadlink RM2 network protocol wenn sich da was geändert haben sollte bzw. das mit python funktioniert muss ich mir mal anschauen wo da die Unterschiede sind.

Kann ich denn eigentlich die Variblenprofile untereinander tauschen. Zb. Aus der ersten commands variable 29-31 löschen und durch welche aus der zweiten commandsvariable ersetzen.
Da ich aktuell variablenprofile gelöscht habe, neue aber immer in der 2 ten variablen stehen.
Danke für fie Hilfe vorab
Grüße

Es wird beim Anlernen jeweils die Bezeichnung des angelernten Befehls und das Command selber in der versteckten Variable Commands hinterlegt. Anhand der Anzahl der Befehle wird entschieden ob eine weitere Variable ergänzt werden muss und das dem Variablenprofil ergänzt.

Du kannst diese Dinge aber letztendlich individuell anpassen. Dazu würde ich zunächst sämtliche Befehle, die Du an dem Gerät anlernen willst, dem Broadlink in IP-Symcon anlernen, dadurch werden zunächst mal alle Befehle auf Variablen verteilt.

Wenn Du diese jetzt im nach hinein ändern willst musst Du auf folgende Dinge achten:

[ul]
[li]Die Reihenfolge der Befehle in einem Variablenprofil kann beliebig verändert werden[/li][li]Die Bezeichnung beim Variablenprofil im Feld Text darf nicht angepasst bzw. geändert werden, da dies dem angelernten Namen des Befehls entspricht und die Identifikation des eigentlichen Schaltbefehls über den Befehlsnamen erfolgt. Sollte man einen anderen Namen im Variablenprofil haben wollen ist dann beim Anlernen ein passender Befehlsname zu vergeben.[/li][li]Es werden bis zu 7 Variablen vom Modul angelegt, man kann auch von Hand Variablen anlegen und die Befehle dann von Hand auf die Variablen verteilen. Dabei ist nur darauf zu achten, dass jede Variable eine eindeutige Ident besitzt, die dem Modul bekannt sind.[/li][/ul]

Die verwendeten Idents sind WFCommands, WFCommands1, WFCommands2, WFCommands3, WFCommands4, WFCommands5, WFCommands6
Sollte man also von Hand eine Variable anlegen muss dieser dann noch nach dem Erstellen mit


$id = 12345; // Objekt ID der Variable
$ident = "WFCommands2"; // passende Ident setzten
IPS_SetIdent($id, $ident);

einmalig eine Ident zugewiesen werden. Wie Du dann im Endeffekt die Befehle auf Variablen verteilst ist Dir überlassen.

Das liegt daran, dass geprüft wird ob es mehr Befehle gibt wie in ein Variablenprofil passen, wenn das der Fall sein sollte werden die Befehle automatisch in das neue Variablenprofil abgelegt. Daher erst alles Anlernen und dann am Schluss, wenn alle Befehle vorhanden sind, individuell umverteilen.