Klappt, Danke - genau, was ich gesucht habe!
Da bin ich anderer Meinung. Z2M oder mein anderes Thema „Proxmox“ sind so umfangreich, da brauche ich noch länger. Ich bin wirklich für jeden genauen Tipp dankbar.
Klappt, Danke - genau, was ich gesucht habe!
Da bin ich anderer Meinung. Z2M oder mein anderes Thema „Proxmox“ sind so umfangreich, da brauche ich noch länger. Ich bin wirklich für jeden genauen Tipp dankbar.
Den Scherz nicht verstanden?
Und das Problem sollte gar nicht auftreten, wenn man nicht selber was verstellt.
Die Bridge Instanz, welche durch den Konfigurator erzeugt worden sein sollte, sagt dir wenn du da was falsch einstellst und mit einem Klick kannst du das beheben.
Michael
Hallo, ich hab gerade ein Problem: Als ich auf den Z2M Configurator ging, bekam ich den Hinweis, dass ich die Bridge-Instanz installieren soll. Hab ich gemacht und nun kommt, ich möge das Z2M in der Bridge aktualisieren. Gehe ich dort aber auf „Symcon Erweiterung installieren oder updaten“, so kommt nur:
Kann mir jemand helfen bitte?
Danke,
Tom
[EDIT] Manuell installiert, dann ging es!
Die Überschrift mit dem Error ist da leider falsch.
Wenn aber OK kommt, dann war alles korrekt abgelaufen.
Oder hast du mein manuell installieren noch eine alte Version in Z2M vorgefunden?
Michael
Ja, genau, da war noch eine alte Version drin. Der Configurator lief ja auch nicht. Hab das dann direkt in der Datei geändert und neu gestartet - dann war alles chique…
Hallo,
um es übersichtlicher zu machen, möchte ich gerne einen MQTT Server nur für Zigbee haben.
Ich meine mittlerweile auch gelesen zu haben das man das so machen soll.
Hatte ich bis jetzt nicht. Wie macht man das am Besten, ohne das man alle Instanzen neu anlegen muß?
Oder geht das nachträglich garnicht.
Ich hatte es mit anderem Port in der configuration.yaml probiert, aber dann sind in dem zugehörigen Server alles neue Devices.
Gruß Michael
Technisch egal.
Früher ja, inzwischen nein.
Man muss nix neu anlegen. Dafür gibt es den Button Gateway ändern in allen Instanzen.
Selbstverständlich geht das.
Keine Ahnung was du mit zugehörige Server meinst. Für den MQTT Server (Splitter) sind das neue Topics, logisch.
Ordne den vorhandenen Konfigurator und Bridge Instanzen dem neuen MQTT Splitter zu (Gateway ändern) und der Konfigurator sagt dann schon das er dir die Arbeit abnimmt das für alle Geräte und Gruppen zu korrigieren.
Michael
Danke dir, muß ich mir dann mal in Ruhe anschauen.
Das mit dem Gateway ändern in allen Istanzen war wohl der Tipp der mir gefehlt hat.
Es geht noch etwas einfacher, als es selber umzughängen.
Nutze die Instanz Zigbee2MQTT-Discovery
Der erkennt dann das der Konfigurator an einem anderen MQTT Server hängen sollte und bietet dir das umhängen direkt an.
Anschließend den Konfigurator öffnen und auch der meldet dann:
Hallo zusammen,
ich habe mal eine grundsätzliche Frage zur Ansteuerung von RGB-Controllern.
Ich habe noch ProJet/IPS868-RGBW-Controller im Einsatz und möchte diese durch Zigbee RGB(W)-Controller ersetzen, verstehe aber die Ansteuerung der Controller aus Scripten heraus nicht.
Ich verstehe nicht genau, wie ich eine spezielle Farbe setzen soll.
Mal einfach ein rot:
$r=120;
$g=20;
$b=0;
Macht in int=7869440 und in hex=781400. Egal welchen Wert ich übergebe, kommt immer irgendwas nicht rotes raus.
Im Formular bei „Variable bearbeiten“ steht aber 16711680 mit einer Helligkeit von 56%.
Ich komme also von
PJ_DimRGBW($deviceID, $r, 0, $g, 0, $b, 0, 0, 0);
zu
Z2M_WriteValueInteger($device, ‚color‘, $col1);
wobei die obigen Werte für $col1 alle ein anderes Ergebnis liefern.
Kann mich bitte mal wieder auf’s Gleis setzen.
P.S. Es ist ein Tuya TS0503B unter dem Zigbee2MQTT 5.19 Modul.
Viele Grüße
Kevin
Ist color die Variable mit dem ~Hexcolor Profil?
Michael
Ich komme von Deconz und habe mir einen neuen Koordinator gekauft (SLZB-06M) und diesen nun mit Zigbee2MQTT am laufen. Das Modul ist schon sehr gut. Ich hätte aber noch einen Vorschlag:
Die Möglichkeit unnötige Variablen gar nicht erst anlegen zu lassen, wie es beim Deconz-Modul funktioniert:
Hier kann man nach Lust und Laune einiges an- und abschalten, explizit dachte ich da gleich an
Mehr habe ich noch nicht probiert. Habe erst alles frisch eingerichtet und wollte nun meine Geräte umziehen.
Nochmals vielen Dank an Euch für das tolle Modul, ihr macht wirklich tolle Arbeit.
Kevin
Hallo Michael,
ja, sie ist vom Profil ~HexColor.
Siehe Antwort hier:
Stimmt die Farbe den, wenn du sie über die Visu setzt, oder über das Testcenter?
Michael
Guten Morgen Michael,
ja, über die Visu stimmt die Farbe.
Ich brauche nur mal einen Hinweis, wie ich eine Farbe setze, am liebsten noch mit Dimm-/Transitionzeit.
Noch was anderes. Ich habe gerade meine KADRILJ/FYRTUR-Rollos angelernt. Hier fehlte noch ein Variablen-Profil (OPEN,CLOSE,STOP).
Viele Grüße
Kevin
Dann stimmt was mit deinem Skript nicht. Zeig mal bitte wie du den Wert berechnest.
Dafür gibt es eine fertige Aktion „Farbe mit Übergang“ für die Instanz.
Alternativ kannst du auch ein komplett eigenes Payload über den Befehl Z2M_Command an die Instanz senden. Das Payload muss ein JSON sein, welches zu deinem Gerät gemäß der Z2M Doku passt.
Bitte einmal das Debug bereit stellen:
Michael
Hier die Debug-Files für beide Geräte-Typen:
Z2M_Debug_FYRTUR.json (18,4 KB)
Z2M_Debug_KADRILJ.json (20,9 KB)
Und genau da liegt der Stolperstein. Die Doku bringt nur ein Beispiel. Den genauen Befehl bekomme ich nicht zusammen.
Noch mal zurück zu meinem use case:
Ich nutze seit 2011 hier mehrere Scripte, die alle ein Farbwert für mehrere 868-RGBWs enthalten und schalte mittels einem Tastendruck so durch die Programme, also den „Szenen“.
$nextScriptID = 43782;
$fadetimer=1; //Standard-Fade-Timer
// $device1 = 40674; // ProJet
$device1 = 20303; // Zigbee
$r1 = 120;
$g1 = 20;
$b1 = 0;
$w1 = 0;
$device2 = 55169; // ProJet
$r2 = 160;
$g2 = 120;
$b2 = 0;
$w2 = 0;
/***** Scriptbereich *********************************************************/
if ($_IPS[‚SENDER‘] == „Variable“) // Wenn durch Trigger=FB-Tastendruck ausgelöst
{
IPS_SetAllEventsActive($_IPS[‚SELF‘], false); //eigene Trigger deaktivieren
IPS_SetAllEventsActive($nextScriptID, true);
};
// $col1 = 16711680;
// @PJ_DimRGBW($device1,$r1,$fadetimer,$g1,$fadetimer,$b1,$fadetimer,$w1,$fadetimer);
// Z2M_WriteValueInteger($device1, ‚color‘, $col1);
$Payload[‚color‘] = $col1;
Z2M_Command($device1, ‚set‘, json_encode($Payload));
@PJ_DimRGBW($device2,$r2,$fadetimer,$g2,$fadetimer,$b2,$fadetimer,$w2,$fadetimer);
Den RGB-Wert wollte ich oben aus den Einzelwerten mittels einer Funktion bauen lassen:
function rgb2int($r, $g, $b)
// gibt den Integer-Wert von einzelnen RGB-Werten zurück
// Wandelt zuerst alle drei RGB-Werte in Hex-Werte. Verbindet zu einer Hex-Zahl
// und wandelt zum Schluss in Integer/Dezimal um und gibt diesen Wert zurück.
{
$rhex = dechex($r);
$ghex = dechex($g);
$bhex = dechex($b);
$rgbhex = $rhex.$ghex.$bhex;
$rgbint = hexdec($rgbhex);
return $rgbint;
}
Moin,
kannst Du mal bitte schauen, ob bei Deinen State-Variablen zu den Rollos das Profil Z2M.state.7c75b7a3
hinterlegt ist?
LG
Burkhard
Hallo Burkhard,
ja, ist beim KADRILJ hinterlegt. Aber im Device ist das hier zu sehen:
Kevin
Edit: Und auch bei den FYRTUR.
Benutze bitte den Button und nicht Blockzitat, sonst zerhaut es deinen Code!
Und wenn dein Code ObjektIDs enthält, bitte auch immer einen Screenshot aus dem Objektbaum mit Nummern, Name und Typ anhängen.
Sonst weiß keiner was 20303 ist.
Das hier:
Z2M_WriteValueInteger(20303, 'color', 16711680)
ist identisch mit
RequestAction(12345 /** VariabenId */ , $col1);
ist identisch mit der Bedienung aus den Visus.
→ Das landet alles in der gleichen Funktion im Modul.
Somit kann ich mir nicht erklären warum es bei dir ein unterschiedliches Verhalten ist.
Das folgende ist aber falsch:
Die Doku in Z2M zu deinem Gerät sagt:
Alternatively it is possible to set the XY color via RGB:
{"color": {"r": R, "g": G, "b": B}}
e.g.{"color":{"r":46,"g":102,"b":150}}
{"color": {"rgb": "R,G,B"}}
e.g.{"color":{"rgb":"46,102,150"}}
{"color": {"hex": HEX}}
e.g.{"color":{"hex":"#547CFF"}}
Du musst also die Werte einzeln codieren oder den HEX-String nutzen.
Damit kannst du es aus einem INT wieder zerlegen:
function IntToRGB($value)
{
$RGB = [];
$RGB['r'] = (($value >> 16) & 0xFF);
$RGB['g'] = (($value >> 8) & 0xFF);
$RGB['b'] = ($value & 0xFF);
return $RGB;
}
$Payload['color'] = IntToRGB(16711680);
Z2M_Command($device1, 'set', json_encode($Payload));
Hier noch ein Tipp um aus R,G,B einen Int zu erhalten. Ist bedeutend weniger komplex
function rgb2int($r, $g, $b){
return ($r << 16) | ($g << 8) | $b;
}
Michael
PS: Du kannst ja mal im Debug der Instanz vergleichen was gesendet und empfangen wird, je nachdem wie du das Gerät ansteuerst. Vielleicht sieht man dort warum ein Wert falsch ist?
PPS: Es fehlt kein Profil, nur Übersetzungen. Die Bezeichnungen kannst du aber einfach selber im Profilmanager unter dem Profil Z2M.state.7c75b7a3
anpassen.