Hallo zusammen,
das ist mein erster Beitrag hier, aber gerne, wenn ich helfen kann.
Ich habe zwei Lora Add-ons in Betrieb genommen und es funktioniert.
Der 1. Lora hängt als Sender an einem 2PM Gen3 mit 1.6.0-beta2, versorgt mit 24VDC am Motor meines Einfahrtstors. Am Motor greife ich das offen/geschlossen Signal des Einfahrtstors ab und schalte den Switch:0 des 2PM. Der Lora 1 sendet das offen/geschlossen Signal an den Lora 2, der wieder an einen einem 2PM Gen3 ( Achtung: wieder mit 1.6.0-beta2, 1.5.1 geht nicht, 1.6.0-beta1 geht auch) hängt, aber im Haus, versorgt mit 220VAC. Dies musste ich so lösen, da ich im Bereich des Einfahrtstor kein ausreichendes WLAN mehr habe, Switch:1 kommt später.
Das etwas komplizierte an der Sache war, dass für das Senden und Empfangen des Relais/Switch:0 (offen/geschlossen) ein Script am Sender 2PM mit Lora 1 und ein Script am Empfänger 2PM mit Lora 2 notwendig ist.
Die Scripte sind aber relativ einfach, zumindest wenn man etwas Erfahrung mit Scripten hat. Ich bin auch erst seit kurzem dabei und habe es auch geschafft.
Beim Sender verwende ich einen Statushandler, der nur den Zustand ein oder aus, zusammen mit der Switch Nummer abgreift und an die send_lora function übergibt.
Beim Empfänger kommt das Signal als event.info.data an und muss nur über Shelly.call zum Schaltern des 2PM verwendet werden. Achtung das Signal kommt als verschlüsselte Zeichenkette an, da die verschlüsselte Zeichenkette aber immer gleich ist, reicht das zum Schalten, d.h. ich verwende den verschlüsselten String zum Schalten des Empfänger 2PM.
Sonst habe ich keine weiteren Einstellungen an den Loras vorgenommen, aja bei den Loras gibt es auf der Web Oberfläche die Möglichkeit eines Firmware-Updates, das habe ich ausgeführt.
So, ich hoffe etwas geholfen zu haben und sende schöne Grüße aus dem Süden von Österreich.
Anbei noch meine Scripte (sorry für das komische eingezogen Format, sieht bei mir nicht so aus).
Scripte am Sender:
function send_lora(status){
Shelly.call('Lora.SendBytes',{
id: 100,
data: btoa(status)
},
function (_, err_code, err_msg) {
if (err_code !== 0) {
print('Error:', err_code, err_msg);
}
});
}
Shelly.addStatusHandler(function (event) {
if (event.component === 'switch:0' || event.component === 'switch:1'){
print(event.component, event.delta.output);
if (event.delta.output === true){
print('ein_'+ event.component);
send_lora('ein_'+event.component);
}
else if (event.delta.output === false) {
print('aus_'+ event.component);
send_lora('aus_'+event.component);
}
}
});
Alles anzeigen
Script Empfänger, die function schalten habe ich weggelassen, ich denke, das sollte auch so schaffbar sein.
Shelly.addEventHandler(function (event) {
if (
typeof event !== 'object' ||
event.name !== 'lora' ||
!event.info ||
!event.info.data
) {return}
schalten(event.info.data);
});