NEWS
OBI Funk-Steckdosenumbau ESP8266 (Generation1 Rund)
-
Hallo !
Also ich habe "Hängelampe" ausprobiert, Funktioniert wunderbar.
Ein Großes DANKE für die Alexa-Integration. Das ist toll!!!
-
Hallo,
So habe die Firmware drauf, lasse Alexa App suchen und finde nichts.
Brauche ich noch einen Skill?
Ich muss erwähnen dass ich keinen Echo habe sondern nur die Alexa App auf dem Tablet.
meierchen006
-
Kein Echo, keine Alexa
-
Hallo,
Das ist nicht richtig,
ich kann meine Bose Soundtouch auch über die App ein und ausschalten lassen.
Als welches Gerät muss ich die OBI Steckdose hinzufügen, ich habe unter sonstige gesucht
-
Oh das ist mir neu, wie hast dann die Bose Soundtouch mit Alexa gekoppelt (gesucht)?
In der APP ist die Such ja mittlerweile etwas verwurschtelt aufgebaut, da empfehle ich die Suche direkt über Alexa Webseite, denn da ist immer noch die allgemeine Suche aktiv, die einfach nach allem sucht. Wobei ich es echt nicht glauben kann, dass man kein Echo mehr braucht um Geräte zu koppeln.
Deshalb interessiert es mich wirklich wie Du das gemacht hast.
-
Hallo,
Dazu braucht man einen Bose Skill
meierchen006
-
OK, dann stellt der Skill die Geräte in Alexa bereit. Dann müsste es für die Obi Umbauten wohl auch ein Skill geben, kein Plan ich habe andere Steckdosen mit Tasmota am Laufen. Die brauchen kein Skill, dafür aber ein Echo :lol:
-
Hallo,
So ist es in den OBI Steckdosen eingestellt entweder als Name obi1 oder obi2.
So sieht bei meiner Obi1 Steckdose unter ip/espalexa aus
-
Hallo,
So habe die Firmware drauf, lasse Alexa App suchen und finde nichts.
Brauche ich noch einen Skill?
Ich muss erwähnen dass ich keinen Echo habe sondern nur die Alexa App auf dem Tablet.
meierchen006 `
Hi,
die Dosen simulieren eine Hue. Aber ich glaube das funktioniert nur mit den Alexa-Geräten, die auch diese steuern können.
Das sind wohl zumindest die Echo Dots.
Für obi1 / obi2:
Starte mal die Dose neu, was sagt sie dann?
-
Ja mit Hue Emulator geht es nur mit nem Echo, da man die Dose nicht mit der Hue APP verknüpfen kann und dann auch der Skill nicht greift.
-
Kleines Update für Alexa:
Update der Oberfläche:
Integration MQTT:
Der Status der Dose wird korrekt an Alexa zurück gemeldet
Bugfix:
Timer -> ON ging nicht. Ist repariert.
Für die Selbstübersetzer:
ESPALEXA ist nicht mehr als LIB enthalten sondern die beiden Sourcen sind aktuell enthalten, da doch einige Anpassungen notwendig waren.
-
Hallo,
ich habe auch noch eine Fire TV Box mit eingebauter Alexa.
Auch dort werden die Obi Steckdosen nicht gefunden, schade.
Werde mir bei Gelegenheit dann mal einen kleinen Echo Dot Version 3 kaufen, funktioniert es mit dem?
ich habe die Steckdosen gestern schon mehrfach neu gestartet gehabt.
Jetzt Aktuell mit der Firmware 1.2.2b
Obi1 mit 1.2.2b
Obi2 mit 1.2.2b
-
Hallo,
ich habe auch noch eine Fire TV Box mit eingebauter Alexa.
Auch dort werden die Obi Steckdosen nicht gefunden, schade.
Werde mir bei Gelegenheit dann mal einen kleinen Echo Dot Version 3 kaufen, funktioniert es mit dem? `
> The ha-bridge requires a physical Amazon Echo (Gen1 or 2), Echo Plus, Dot (Gen 1 or 2), Tap, Show, Spot or Google Home or Mini device and does not work with prototype devices built using the Alexa Voice Service e.g. Amazon’s Alexa AVS Sample App and Sam Machin’s AlexaPi. The AVS version does not have any capability for HUE Bridge discovery!
Also noch nicht getestet mit Dot Gen 3.0
-
Anderer Weg in Alexa ist die HA-Bridge.
Gerät dort anlegen mit IP Adresse und variablen Name (z.B. Gästezimmer)
Alexa suchen lassen und zack kann man die Steckdose steuern wie man will.
An / Aus / Routinen etc.
-
Anderer Weg in Alexa ist die HA-Bridge.
Gerät dort anlegen mit IP Adresse und variablen Name (z.B. Gästezimmer)
Alexa suchen lassen und zack kann man die Steckdose steuern wie man will.
An / Aus / Routinen etc. `
Hi,
gute Idee, habe ich auch ausprobiert, siehe dazu auch mein Script im entsprechenden Post.
var anz=0; var habridgeURL = "http://192.168.1.13:8080/api/devices" var ioBrokerURL = "http://192.168.1.13:8087/set/" /////////////////////////////////////////// function escapeRegExp(str) { return str.replace(/[\-[]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\><"); } function delDevices(from_val,to_val,habridgeURL) { for (var i=from_val;i<=to_val;i++) { var request = require('request'); request.delete({ headers: {'content-type': 'application/json'}, url: habridgeURL+"/"+i }, function(error, response, body) { if (error){ return log(error, 'error'); } log("Del Response: "+JSON.stringify(body)); }); } } function getDevice(val,habridgeURL) { var request = require('sync-request'); var erg = request.get({ headers: {'content-type': 'application/json'}, url: habridgeURL+"/"+val }, function(error, response, body) { if (error){ return log(error, 'error'); } log("Get Response: "+body); log("GET-NAME:"+JSON.parse(body).name); }); } function sendrequest(habridgeURL, params,id,devid){ if (devid.length!==0) { // ID Vorhanden, dh. hole Namen aus ha-bridge var request = require('request'); var erg = request.get({ headers: {'content-type': 'application/json'}, url: habridgeURL+"/"+devid }, function(error, response, body) { if (error){ return log(error, 'error'); } // log("Get Response: "+body); // log("GET-NAME:"+JSON.parse(body).name); var name=JSON.parse(body).name; var addurl=""; if (name===undefined) { log("NOT FOUND - "+devid); return; // auskommentieren um nicht gefundene neu anzulegen! <<<<<<<<<<<<<<<<<<<<<<<<<<<< params["id"]=null; sendrequest(habridgeURL, params,id,""); } else if (name.length>0) { params["name"]=name; addurl="/"+devid; } var request = require('request'); request.put({ headers: {'content-type': 'application/json'}, url: habridgeURL+addurl, body: params, json: true }, function(error, response, body) { if (error){ return log(error, 'error'); } // log("Update Response: "+JSON.stringify(body)); // var regexp = escapeRegExp(ioBrokerURL)+"(.*)\\?value.*"; log("update ok - "+devid); }); }); } else { var request = require('request'); request.post({ headers: {'content-type': 'application/json'}, url: habridgeURL, body: params, json: true }, function(error, response, body) { if (error){ return log(error, 'error'); } // log("Response: "+JSON.stringify(body)); var regexp = escapeRegExp(ioBrokerURL)+"(.*)\\?value.*"; var patt = new RegExp(regexp); var result = patt.exec(body[0].onUrl); if (result!==null) { log("ID für "+ decodeURI(result[1]) +" erhalten: " + body[0].id); if (!isNaN(body[0].id)) extendObject(decodeURI(result[1]), {common: {habridgeid: body[0].id}}); } else { log("update nok"); } }); } } function saveData(id,raum,devname,onurl,offurl,dimurl) { // log("Objekt: "+id); devid=""; var params = {}; if (isNaN((getObject(id).common.habridgeid))){ devid=""; log("++++++++ Neu "+id+devid+" "); } else { devid=getObject(id).common.habridgeid; log("======== Update "+id+"-"+devid+"-"); } // devid=""; // add trotz ID idu=encodeURI(id); if (devid.length>0) { params["id"]=devid; } params["name"]= devname; params["deviceType"]= "switch"; params["onUrl"]= "[{\"item\":\""+ioBrokerURL+idu+"?value="+onurl+"\",\"type\":\"httpDevice\"}]"; if (offurl.length>0) params["offUrl"]= "[{\"item\":\""+ioBrokerURL+idu+"?value="+offurl+"\",\"type\":\"httpDevice\"}]"; if (dimurl.length>0) params["dimUrl"]= "[{\"item\":\""+ioBrokerURL+idu+"?value="+dimurl+"\",\"type\":\"httpDevice\"}]"; params["description"]= "\""+raum+"\""; params["comments"]= id; sendrequest(habridgeURL,params,id,devid); } function callme(id,i,b,onurl,offurl,dimurl) { if (getObject(id) && anz<500) { var devname=getObject(id).common.name; var channel=getObject(id).common.name.split(":"); var idteile=id.split("."); var dev=""; var dp = getObject(id,"rooms"); var raum=dp.enumNames; if (idteile.length>2) { dev=idteile[2]; } if (raum.length===0) { raum="-" } if (b===false || raum!="-") { anz=anz+1; // log( '"'+id+'","'+channel[0]+'","'+devname+'","'+raum+'","'+dev+'"'+String.fromCharCode(10)); saveData(id,raum,devname,onurl,offurl,dimurl); } } } // callme // id = Geraeteid // i = Nummer (nicht verwendet) // b = Nur Geräte mit Raum (true/false) // onurl = Wert für ON // offurl = Wert für OFF // dimurl = Wert für DIM ("${intensity.percent}") //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //var states = $('broadlink2.0.*.L.*').each(function(id,i) { callme(id,i,false,"true","false",""); }); //var states = $('broadlink2.0.States.*').each(function(id,i) { callme(id,i,false,"true","false",""); }); //var states = $('broadlink2.0.Scenes.*').each(function(id,i) { callme(id,i,false,"true","false",""); }); //var states = $('scene.0.*').each(function(id,i) { callme(id,i,false,"true","false",""); }); //var states = $('hm-rpc.0.*.SET*').each(function(id,i) { callme(id,i,true,"true","false",""); }); var states = $('hm-rpc.0.*.1.LEVEL').each(function(id,i) { callme(id,i,true,"100","0","${intensity.percent}"); }); //var states = $('hm-rpc.0.LEQ1023360.1.LEVEL').each(function(id,i) { callme(id,i,true,"100","0","${intensity.percent}"); }); //delDevices(25,200,habridgeURL); //getDevice(25,habridgeURL);
-
Also meine Obischalter schalten sich immer noch an, wann sie möchten. Und zwar beide gleichzeitig. Das ist echt komisch.
Ich habe 2 Obischalter. Sie werden beide über ein Script im IOBroker direkt angesteuert (über CMD).
Wenn auf der Homematic-FB eine Taste gedrückt wird, starten die Obischalter.
Aber auch erst dann.
Wenn das Script im IOBroker aktivert worden wäre, hätte ich es im Log gesehen. Dort war nichts zu sehen. Debug-Modus ist für das Script an.
Jetzt weiss ich nicht mehr weiter.
Hat jemand noch eine Idee, bevor ich die Schalter auf den Müll werfe?
-
Also meine Obischalter schalten sich immer noch an, wann sie möchten. Und zwar beide gleichzeitig. Das ist echt komisch.
Ich habe 2 Obischalter. Sie werden beide über ein Script im IOBroker direkt angesteuert (über CMD).
Wenn auf der Homematic-FB eine Taste gedrückt wird, starten die Obischalter.
Aber auch erst dann.
Wenn das Script im IOBroker aktivert worden wäre, hätte ich es im Log gesehen. Dort war nichts zu sehen. Debug-Modus ist für das Script an.
Jetzt weiss ich nicht mehr weiter.
Hat jemand noch eine Idee, bevor ich die Schalter auf den Müll werfe? `
Hast du die aktuelle Version drauf?Was sagen die Loggs der Dose?
Zeig mal dein Script.
-
Ja, die Alexa-Fassung ist drauf und fkt. hervorragend.
anbei das Blockly.
1555_script_obischalter.jpg -
Ja, die Alexa-Fassung ist drauf und fkt. hervorragend.
anbei das Blockly. `
Hallo,
wenn du das Script so realisierst, startet es bei jedem Neustart des Rechners, bei jedem Neustart vom ioBroker, bei jedem Neustart des java-Script-Adapters und bei jedem Speichern des Skriptes.
Das beide Steckdosen immer zugleich schaltet zeigt, das hier das Skript Aktiv ist. Ich bin mir sicher, das du zur entsprechenden Zeit in der Logdatei
(iobroker/logs?) den Eintrag mit "test" findest.
Ich habe in viewtopic.php?f=21&t=15722&start=100#p176935 beschrieben wie man z.B. Alexa Skripte
mit einem Trigger versieht.
Kurz: Du legst eine Variable an. Deine Fernbedienung startet nicht das Skript sondern ändert die Variable, z.B. immer auf true.
Dein Blocky reagiert dann auf Falls Object wurde aktualisiert.
Wenn danach immer noch etwas falsch läuft, kannst du die Variable mal auf protokollieren setzen und siehst die Änderungen.
NIE ein Skript ohne Trigger schreiben!
-
Okay, ich verändere dann meinen zeiger auf die neue Variable. Nur wie wird Variable angesteuert? Ich habe mal die beiden Blockly angehängt. So habe ich das jetzt gemacht. Nun sind es 2 Scripte. Und das nur wegen der Variablentrennung
Oder geht das alles auch eleganter?
Nachtrag: Mist, jetzt bekomme ich auch noch den Fehler "Cannot extract Blockly code. " Was habe ich nun falsch gemacht? Das ist echt ätzend.
1555_trigger.jpg
1555_trigger2.jpg