Hallo :-)
Ja, das ist eine bekannte Limitation. Es dürfen nicht mehr als zwei Ventile gleichzeitig geöffnet werden.
Scheint dann wohl auch ausschließlich daran zu liegen.
Gibt es denn die Möglichkeit, den Ventil Status abzurufen? Dann würde ich daraus einfach "AKM200" Eingänge bauen wollen.
Es ist keine Limitation hinsichtlich eingehender Abfragen oder Befehle vorhanden (abgesehen von oben geposteten). Lediglich diese Bedingung für Ventile.
Ich habe mir darüber hinaus die Smart Steckdose von Gardena geholt. Diese würde ich auch gern einbinden. Das kann ja eigentlich nicht so schwer sein. Bloß: Entweder finde ich die Funktionen nicht oder ich verstehe den ganzen Aufbau der Api einfach grundsätzlich nicht.
Edit: Nach einigem Rumgeiere habe ich nun selbst eine Funktion für eine Powersocket-Liste erstellt:
function gardena_powersocketlist()
{
try {
var locs = gardena_apicall('locations');
var locid = locs.data[0].id; // just take first location for now
var status = gardena_apicall('locations/'+locid)
var i = 0;
var objs = status.included;
var powersocketlist = ''
while (i<elements(objs)) {
var obj = objs[i]
if (obj.type=='POWER_SOCKET') {
powersocketlist = powersocketlist + format("%s : powersocket %s, activity=%s\n", obj.id, obj.attributes.activity.value)
}
i=i+1
}
return powersocketlist
}
catch as err {
return err;
}
}
Funktioniert auch soweit schon mal.
Um den Powersocket zu schalten:
function gardena_powersocketcontrol(serviceid, switch)
{
var req = {
"data" : {
"type": "POWER_SOCKET_CONTROL",
"attributes": {
"command": false
}
}
}
if (switch=0) {
// turn off
req.data.attributes.command = "STOP_UNTIL_NEXT_TASK"
}
else {
//turn on
req.data.attributes.command = "START_OVERRIDE"
}
gardena_command(serviceid, req)
}
Und schliesslich ein Powersocket-Device:
Init-Message:
{
'message':'init',
'output':'basic', /* Ausgang ohne spezielles Verhalten */
'colorclass':8, /* universell verwendbar, in digitalSTROM: schwarze Joker-Klemme */
}
Implementation:
// hier muss eine Service ID aus der von gardena_powersocketlist() gelieferten Liste eingetragen werden
var powersocket_service_id = 'a3b2ee7d-9905-4669-acce-2212525286a5'
// Meldungen vom System (hier: Änderung des Ausgangswerts) behandeln
on (message()) as m {
// wenn die Meldung den Kanal mit Index 0 betrifft...
if (m.message=="channel" && m.index==0) {
// PowerSocket offline schalten oder online schalten
gardena_powersocketcontrol(powersocket_service_id, if(m.value<50, 0, 1))
}
}
return true // es ist ok, dass das Script hier endet
Edit2: Das Problem, dass der Zugang für die kreierten Skripted Devices zu Gardena blockiert wird, tritt offenbar häufiger auf. Auch unabhängig von der Limitation. Kann es sein, dass irgendwas nur temporär gilt?