Hi,
es geht jetzt auch schon. Mit:
$Payload['local_temperature_calibration] = -2;
$PayloadJSON = json_encode($Payload, JSON_UNESCAPED_SLASHES);
Z2M_Command(DeviceInstanz, 'set', $PayloadJSON);
sollte der Offset gesetzt werden.
Ralf
Hi,
es geht jetzt auch schon. Mit:
$Payload['local_temperature_calibration] = -2;
$PayloadJSON = json_encode($Payload, JSON_UNESCAPED_SLASHES);
Z2M_Command(DeviceInstanz, 'set', $PayloadJSON);
sollte der Offset gesetzt werden.
Ralf
Welche davon sind schreibbar?
@HarmonyFan
Richtig, ich will es aber noch als Variable darstellen.
Grüße,
Kai
Das ist mir klar, aber mit einer beschreibbaren Variable wäre es einfacher zu handeln. Wenn Geräte diese Möglichkeit bieten, sollten sie auch angeboten werden. Um hier wieder mal auf den Punkt zu kommen: Es muss doch nicht Alles mit Scripte belegt werden, wenn es intuitiver funktioniert.
Gruß
Burkhard
Hallo Kai,
die sind alle beschreibbar. Die Andren habe ich schon nicht mit aufgelistet
Gruß
Burkhard
Hi,
der Hinweis auf Z2M_Command war nur gedacht falls es dringend ist.
KaiS wird bestimmt unterschreiben das ich einer bin der alles machbare auch machen bzw. gemacht haben will:-)
Apropos machbar: Der Hue Bewegungsmelder hat Variablen occupancy_timeout und motion_sensitivity die auch beschreibbar sind.
mit
Hue MotionSensitivity, OccupationTimeout
RequestAction
case 'Z2M_MotionSensitivity':
$this->setMotionSensitivity($Value);
break;
case 'Z2M_OccupancyTimeout':
$this->setOccupancyTimeout($Value);
break;
ReceiveData
if (property_exists($Payload, 'occupancy_timeout')) {
$this->RegisterVariableInteger('Z2M_OccupancyTimeout', $this->Translate('Occupancy Timeout'), '');
$this->EnableAction('Z2M_OccupancyTimeout');
SetValue($this->GetIDForIdent('Z2M_OccupancyTimeout'), $Payload->occupancy_timeout);
}
if (property_exists($Payload, 'motion_sensitivity')) {
$this->RegisterVariableInteger('Z2M_MotionSensitivity', $this->Translate('Motion Sensitivity'), 'Z2M.Sensitivity');
$this->EnableAction('Z2M_MotionSensitivity');
switch ($Payload->motion_sensitivity) {
case 'medium':
SetValue($this->GetIDForIdent('Z2M_MotionSensitivity'), 1);
break;
case 'low':
SetValue($this->GetIDForIdent('Z2M_MotionSensitivity'), 2);
break;
case 'high':
SetValue($this->GetIDForIdent('Z2M_MotionSensitivity'), 3);
break;
default:
$this->SendDebug('SetValue MotionSensitivity', 'Invalid Value: ' . $Payload->motion_sensitivity, 0);
break;
}
}
Action Routinen
privat function setOccupancyTimeout(int $value)
{
$Payload['occupancy_timeout'] = $value;
$PayloadJSON = json_encode($Payload, JSON_UNESCAPED_SLASHES);
$this->Z2MSet($PayloadJSON);
}
privat function setMotionSensitivity(int $value)
{
switch ($value) {
case 1:
$Payload['motion_sensitivity'] = 'medium';
break;
case 2:
$Payload['motion_sensitivity'] = 'low';
break;
case 3:
$Payload['motion_sensitivity'] = 'high';
break;
default:
return;
}
$PayloadJSON = json_encode($Payload, JSON_UNESCAPED_SLASHES);
$this->Z2MSet($PayloadJSON);
}
kann man sie auch bedienen.
btw. KaiS hast Du mal einen Thread wo steht das in Zukunft alles nur nur per RequestAction laufen soll? Wenn ja dann sind diese Variablen ein Beispiel das es suboptimal ist. Diese Variablen liefert der Bewegungsmelder erst wenn man sie einmal verändert hat.
Ralf
Danke für den Code.
Man kann im Konfigurator, allerdings die Variablen abrufen.
Ich werde trotzdem dabei bleiben, dass die Funktionen auf private gesetzt werden.
Ein Thread habe ich gerade nicht, aber soweit ich weiß, wird vermehrt auf RequestAction gesetzt, oder @paresy?
Grüße,
Kai
Moin Kai,
der Code beruht ja größtenteils auf Egoismus und ich bin kein geduldiger Mensch der warten kann:-)
btw. Mail von Samstag bekommen? Der Rollo-Antrieb hat bei Position ohne Änderung funktioniert. Bei Status habe ich Änderungen vorgenommen. Da ich dann rumspielen wollte habe ich dir die gesamte PHP-Datei geschickt in der Hoffnung das Du damit was anfangen kannst.
Mal sehen was Paresy sagt. Ich habe aber noch mehr Argumente:-)
Ralf
Es gibt eine neue Version als Stable Version.
Alle weitere dazu ist im zweiten Post zu finden, leider kann ich nicht mehr genau sagen, welche Variablen es nun alle neu gibt.
Es gibt auch eine neue Beta Version, dort gibt es folgende neue Variablen:
Grüße,
Kai
Moin KaiS,
sieht bisher sehr gut aus.
Danke Ralf
Hallo Kai,
ich nutze das Modul recht intensiv und habe das Update vor kurzem durchgeführt.
Zeitgleich allerdings auch meinen Zigbee2MQTT Docker Container aktualisiert.
Jetzt habe ich den Effekt, dass die Batterie Zustände in neuen Variablen sind (links waren alle ungültig) und ich habe nun 2 Variablen bei den Bewegungsmeldern für die Helligkeit.
Ist das durch die Änderung im Modul? Gab es noch weitere Änderungen? Sonst müsste ich nochmal alle Trigger prüfen, ob z.B. Bewegung erkannt noch funktioniert.
Grüße
Steffen
Zigbee2Tasmota oder Zugbee2MQTT? Was nutzt du?
Du schreibst hier im Zigbee2Tasmota Thread.
Grüße,
Kai
Ah sorry, Zigbee2MQTT. Kann ich mein Posting verschieben? Das war ein Versehen.
Ah sorry, Zigbee2MQTT. Kann ich mein Posting verschieben? Das war ein Versehen.
Ich habe es verschoben.
Jetzt habe ich den Effekt, dass die Batterie Zustände in neuen Variablen sind (links waren alle ungültig) und ich habe nun 2 Variablen bei den Bewegungsmeldern für die Helligkeit.
Ich weiß nicht wieso du neue Variablen bekommen hast, eigentlich habe ich da nichts geändert.
Kannst du mal schauen wie die Idents von den alten und den neuen Variablen heißen?
Die Helligkeitsvariablen gibt es neu, da Zigbee2MQTT diese so schickt.
Gab es noch weitere Änderungen? Sonst müsste ich nochmal alle Trigger prüfen, ob z.B. Bewegung erkannt noch funktioniert.
Es gab noch einige Änderungen, aber eigentlich habe ich nur weitere Geräte hinzugefügt, also neue Variablen.
Ansonsten ist ein Konfigurator dazu gekommen, es gibt eine Geräte- und eine Gruppeninstanz.
An der Geräteinstanz hat sich nichts weiter geändert außer der Name und der interne Ablauf.
Sollte dir dennoch etwas auffallen, dann melde dich bitte.
Grüße,
Kai
Batterie hat eine neue Variablen ID erhalten.
Beleuchtungsstärke (Lux) - da gab es aus meiner Sicht eine Veränderung.
Warum der Bewegungsmelder eine Temperatur hat ist mir auch gerade unklar. Ich werde wohl mal den Zigbee2MQTT Docker Container untersuchen müssen…
Wie gesagt, Zigbee2MQTT liefert beide Beleuchtungsstärken Variablen, deswegen werden sie angelegt.
Gab es also zwei Batterie Variablen und du hast schon eine gelöscht? Da hätte mich dann nämlich interessiert wie die beiden Idents (Nicht IDs) aussehen.
Manche Bewegungsmelder liefern Temperaturen, zum Beispiel die von Philips HUE und dann werden die Variable auch angelegt.
Grüße,
Kai
Die alten IDs habe ich leider nicht mehr.
Ich habe von jedem Batterie-Status eine Verlinkung. Sämtliche Verlinkungen führten zu einem ungültigen Ziel (VarID nicht mehr vorhanden).
Es scheint als wurden die Variablen daher vollständig ersetzt (gelöscht + neu angelegt)
Das tut mir leid.
Ich kann da leider jetzt nichts mehr dran ändern.
Hatte sonst noch jemand das Problem?
@HarmonyFan, du hattest nicht so ein Problem, oder?
Du hast doch immer schön die Beta Versionen getestet.
Grüße,
Kai
Hallo.
Sorry stehe etwas auf dem Schaluch.
Habe die neue lib 3.1 jetzt eingebunden.
Allerdings sind jetzt die Funktionen alle Private.
Wie setzte ich jetzt, als Beispiel den „State“ bei einem Plug über „RequestAction“ Funktion?
Ich hab nur den Ident ‚Z2M_State‘ und den Value in RequestAction.
Aber wie kommt die Id des Zigbee Plugs ins Bild?
Danke.
BYE
Thomas
So:
//ID der Status Variable
$VariablenID = 12345;
RequestAction($VariablenID, true)
Grüße,
Kai
Hallo Kai,
hatte das selbe Problem.
Wenn ich es schaffe starte ich ein Backup im Docker, dann kann ich nach den alten idents gucken.