NEWS
Homematic IP Cloud Access Point Adapter
-
@Lucifor1976 Wie viele Zugriffe der Adapter wirklich macht, lässt sich aus dem Log auch nicht ablesen. Den Takt kann ich ja auch nicht vorgeben, der Adapter hat da ja keinerlei Einstellmöglichkeiten. Die häufige Taktung kann ich bei Fehlversuchen auch nachvolziehen.
Ich habe vermehrt diese Meldung bekommen, das System war dann über Stunden nicht erreichbar:
2020-12-19 07:58:37.817 - [33mwarn[39m: hmip.0 (2923) Request error: RequestError: Error: connect ECONNREFUSED 81.14.202.219:6969 2020-12-19 07:58:38.237 - [32minfo[39m: hmip.0 (2923) state change - setPointTemperature - id d027e3e8-ab2c-4fac-8b9a-358abc9c473c - value 18
Ich dachte zunächst, das wäre ein Serverausfall. Die App auf Handy zeigte bei Nutzung meines WLAN unten immer eine Meldung, dass der Dienst nicht verfügbar sei. Wenn ich WLAN abgeschaltet habe und das Mobilfunknetz nutzte, konnte ich mit der App zugreifen.
Ich habe dann den Adapter abgeschaltet und 2 Tage gewartet. Dann ging es auch wieder über das eigenen WLAN. Nach einem Tag Betrieb wieder das gleiche Spiel.
Scheinbar wird die rufende IP-Adresse ausgeschlossen denn außerhalb meines Netzes hat der Zugriff immer funktioniert.Vielleicht macht sich das bei mir eher bemerkbar, da ich eine feste IP-Adresse habe. Bei dynamischen IP's fällt die Sperre dann schon schwerer oder hält nicht so lange an.
Auf Anfrage bei elv bekam ich diese Antwort:
"Nach Rücksprache mit dem Hersteller, wurde diese Maßnahme eingeführt da die häufigen Anfragen der Software (z.B. IOBroker) den Serverdienst der Cloud zu stark beanspruchen.
Dies kann zu Ausfällen auf der eigenen Installation wie auch zu Störungen anderer Cloudteilnehmer führen.
Daher sieht sich der Hersteller gezwungen, die Nutzer für eine Zeit zu sperren, welche das System übermäßig mit Anfragen ansteuern.
Einen Hinweis darauf welches System in welchem Umfang mit dem Clouddienst nutzbar ist bedarf es nicht, da im eigentlichen Sinn der Acces Point in erster Linie mit der App genutzt werden soll."Letztlich bereue ich den Umstieg auf die CCU3 nicht: Es gibt noch mehr Einstellmöglichkeiten (beispielsweise Empfindlichkeit des Präsenzmelders) und die Reaktionen scheinen mir ein wenig schneller und ich bin unabhängig von Störungen im Internet. Allein die Inbetriebnahme auf der Oberfläche der 70er Jahre war etwas mühselig: Ich habe 12 Thermometer, 8 Fensterkontakte und einen Präsenzmelder in Betrieb.
Hätte aber schon erwartet, dass der Hersteller beim Umstieg mit Aufpreis eine CCU3 anstelle der Homematic IP-Zentralen angeboten hätte.
Gruß, Ralf
-
@RK62 sagte in Homematic IP Cloud Access Point Adapter:
Die Einschränkung sollte ggf. im Adapter vermerkt werden damit sich Neueinsteiger nicht für den falschen Accesspoint entscheiden.
erstens gibt es keinen richtigen oder falschen Accesspoint
zweitens haben wir bis jetzt keinerlei Info über einen BANN von ioBroker Nutzern. Schon gar keinen offiziellen über EQ-3Worauf soll sich dann die Info begründen?
wie sollte sie korrekterweise lauten?Wie du deinem letzten Post entnehmen kannst heisst es:
@RK62 sagte in Homematic IP Cloud Access Point Adapter:
die Nutzer für eine Zeit zu sperren, welche das System übermäßig mit Anfragen ansteuern.
-
@RK68
Mich wundert das Dein Adapter im zwei Sekundentakt Anfragen an die HmIP Server schickt. Meiner tut das nicht. Ich habe heute den ganzen Tag den Adapter im Silly Mode laufen lassen, bei mir gehen nur Anfragen raus wenn wirklich etwas geschaltet wird. Das finde ich extrem seltsam.
Aber davon ab, find eich es dennoch eine Frechheit von EQ3 einen Ban einzuführen der auf dritte abziehlt.
Wenn man jetzt frech wäre, baut man den Adapter einfach so um das er aussieht als wäre ein Mediola Adapter, fertig ist der Kuchen, die dürfen ja.Die Frage ist, was ist übermäßig, klar alle zwei Sekunden auf jeden Fall, aber warum tust du das, oder warum tut der Adapter das?
Ich behaupte jetzt ganz frech: Da meine Instanz das nicht macht, ist das wissentlich von dir programmiert oder beabsichtigt.
Meine Server im großen weiten Web haben ebenfalls so einen Mechanismus um ebendies effektiv zu verhindern.Mich für meinen Teil interessiert nun:
- Sind die Abfragen von Dir gewollt, oder haben sich diese eingeschlichen, dann solltest du dem auf dem auf den Grund gehen.
- Was bedeutet übermäßig im Sinne von EQ3, ich habe nur Home IP (Heizkörper, Alarm, Brand und Wassermelder und Tür/ Fensterkontakte) wenn EQ3 dann sagt 100 Anfragen am Tag sind zu viel, habe ich mich für den falschen Anbieter entschieden, Ihr versteht was ich meine.
Sivoll wäre nun (da ich Fail2Ban kenne) eine Funktion im Adapter der den Ban erkennt und dann eine einstellbare Zeit lang funkstille hält.
In der Regel ist der erste Ban ein paar Sekunden, der zeite eine paar Minuten, der dritte dann bereits 24 Stunden und der vierte kegelt (bei mir) die IP für 30 Tage raus, der fünft sorgt dann für einen perm ban.
Das ganze ist aber Dienst abhängig, bei http Anfragen nicht so krass, aber bei ssh/ftp auf jeden Fall.Ich denke aber das bei Dir in den Scripten was nicht stimmt, warum funkt meine Installation nicht ständig nach Hause?
-
@Lucifor1976 sagte in Homematic IP Cloud Access Point Adapter:
Aber davon ab, find eich es dennoch eine Frechheit von EQ3 einen Ban einzuführen der auf dritte abziehlt.
Da wir gar keine offizielle Info haben muss es ja nicht auf dritte abzielen, sondern "nur" auf zu viele Anfragen. Die zertifizierten zugelassenen Anbieter machen das dann wahrscheinlich nicht.
Und alle 2 Sekunden eine Anfrage zu schicken ist wirklich nicht normales Verhalten einer smarthome-Umgebung und kann tatsächlich ganze Server lahmlegen.
Das hatten wir bei uns auch schonmal, wo anscheinend falsch programmierte Schliefen einen immensen Datenstrom verursachten, der dann tatsächlich unsere cloud lahmgelegt hatte -
@Homoran
Full ACK
Ich werde das ganze beobachten und mal im Auge behalten.
Ich denke RK62 sollte seine Installation überprüfen
Nach über 24 Stunden den Adapter auf Silly funkt da gar nichts an die Cloud wenn nicht auch etwas gesteuert wurde. -
Tja, nun hat es mich wohl auch erwischt. Weder über iobroker, noch über die App wenn WLAN genutzt wird, ist ein Abrufen des Status möglich.
Schalte ich WLAN aus, so geht es auf dem Handy wieder.
Hat jemand hier bereits eine Lösung gefunden? -
@spraxel
Ich kann mich da anschliessen. Bei mir geht es auch nur noch über Handynetz, aber nicht mehr im WLAN.Bei mir ist es aber so, ich habe 4 Heiz-Ventile + 2 Thermostate. Diese laufen in festen Profilen und der Ban erfolgte bei mir heute ziemlich genau nach 2 Steuerungen über ioBroker. Die restliche Steuerung läuft automatisiert bei mir im HMIP-AP, nur hin und wieder stelle ich über Alexa/ioBroker mal ein Ventil per Sprachsteuerung um.
Hat bei mir in meinen Augen nicht viel mit "zu viel gefunkt..." zu tun.
-
Hi, deshalb bitte aussagekräftige Logs (ungekürzt), sonst kann man nichts dazu sagen.
Ich beobachte das seit Tagen und bei mir passiert nichts, der Adapter funkt aber auch nicht grundlos in die Cloud.
Adapter auf Log = warn, Adapter neu starten, Router neu starten (damit eine neue IP vergeben wird, bei der Fritzbox reicht auch neu Verbinden)
im ioBroker auf die Logs, oben als Quelle nur den HmIP Adapter auswählen, ein paar Stunden laufen lassen bzw bis es zu einem Ban kommt. Log herunterlagen und hier posten, wenns zu groß wird als zip, sonst hier als /Code, dann kann man sich das ansehen, was da genau passiert und dann zum Ban führt. -
@Lucifor1976
Würde ich gerne machen, aber bei Unitymedia/Vodafone Cable ist es leider so das man ewig lange die gleiche IP erhält. Ergo -> Kein Zugriff auf den HMIP-Adapter.Bei mir gingen alle Anfragen an srv18.homematic.com (konnte ich im piHole sehen) und es war sehr "plötzlich" das er nicht mehr in die Cloud wollte.
-
@X-R4Y
Hast du Automatische Updates der Gravity im pi-Hole an?
Mal ein Schuss ins Blaue: Schalte mal pi-Hole ab und teste.
Mir ist schon oft aufgefallen das per Update plötzlich ganz seltsame (also vollkommen normal zu nutzende Domains) auf der Blocklist waren, manchmal frage ich mich wer entscheidet was auf die Blockliste kommt °°
Ich muss fast nach jedem Update manuell an die Blockliste ran und Änderungen vornehmen, letzte Woche war gleich mal Amazon auf der Liste °°
Überprüf das einfach mal. -
@Lucifor1976 Meine Installation enthält keine Besonderheiten. Der Ausschluss ist auch mit deaktiviertem javascript aufgetreten. Ebenso war der DutyCycle immer OK. Also keine wilden Steuerbefehle, ich zeige lediglich die jeweiligen Raumtemperaturen an. Aber die werden ja 'eh vom Adapter ausgelesen.
Die "2 Sekunden-Anfragen" wurden nicht durch meine Steuerbefehle ausgelöst, sondern sind scheinbar Wiederholversuche des Adapters wenn er keine Verbindung herstellen kann.
Habe übrigens auch noch eine Info von eq-3 erhalten:
"Für den Zugriff auf unsere Cloud sind nur unsere App oder die unser Partner Mediola oder Easy Smarthome zugelassen. Die Nutzung von anderen Fremdsoftwaren kann zu irreparabel Schäden an Ihrer Cloudinstallation führen und wir übernehmen keinen Support."Spricht alles für meinen Umstieg auf die CCU3, nun bin ich unabhängig.
-
Ich habe die hmIP-Thermostate über den Adapter in HomeKit einbinden können.
Mir ist aber nun nicht klar, wie man die hmIP-Fensterkontakte sowie die Rauchmelder einbindet. Könnte hierzu jemand Screenshots vom Service machen ? Das wäre hilfreich...
Frage mich auch, ob durch den Adapter über die Cloud die eingebundenen hmIP-Rauchmelder öfters abgefragt werden, sodass deren nicht austauschbare Batterie stärker beansprucht wird.
-
@RK62 sagte in Homematic IP Cloud Access Point Adapter:
@Lucifor1976 Meine Installation enthält keine Besonderheiten. Der Ausschluss ist auch mit deaktiviertem javascript aufgetreten. Ebenso war der DutyCycle immer OK. Also keine wilden Steuerbefehle, ich zeige lediglich die jeweiligen Raumtemperaturen an. Aber die werden ja 'eh vom Adapter ausgelesen.
Die "2 Sekunden-Anfragen" wurden nicht durch meine Steuerbefehle ausgelöst, sondern sind scheinbar Wiederholversuche des Adapters wenn er keine Verbindung herstellen kann.
Das ergibt jedoch keinen Sinn, wenn eine Steuranfrage nicht zum Server durchkommt, kann diese auch keinen Count auf einen Banzähler geben. In der Regeln funktioniert ein ban so: Anfrage an einen Server, alles gut. Antwort ACK. Anfrage an einen Server mit wirrem zeuch -> Drop und Bancounter +1, ist der Maxwert des Counters erreicht (SSH idR 3) wird auch ein ACK abgelehnt. Alle weiteren Anfragen egal ob wirres Zeuch oder zugelassene Anfragen werden für die voreingestelle Zeit gedropt.
Habe übrigens auch noch eine Info von eq-3 erhalten:
"Für den Zugriff auf unsere Cloud sind nur unsere App oder die unser Partner Mediola oder Easy Smarthome zugelassen. Die Nutzung von anderen Fremdsoftwaren kann zu irreparabel Schäden an Ihrer Cloudinstallation führen und wir übernehmen keinen Support."Naja das ist eine Wald und Wiesen Aussage von EQ-3, die Anfragen von "Mediola" sind garantiert die selben wie vom hmIP Adapter. Einzig die Kennung dürfte eine andere sein.
Spricht alles für meinen Umstieg auf die CCU3, nun bin ich unabhängig.
Ich beobchte das weiter, mir ist bis jetzt nichts passiert. Ich halte aber die VErhaltensweise von EQ-3 für fragwürdig. Einzig nachvollziebarer Grund wäre Drittsoftware auszusperren um die eigenen Partner zu pushen (Mediola, Easy Smarthome)
Ein Schelm könnte jetzt versuchen den Adapter mit einer Kennung von Mediola auzustatten das es aussieht als sei der Adapter ein nativer von Mediola, ich bin aber zu wenig im programmier Thema um zu wissen ob das gehen würde und wie aufwändig das ist.
-
@entavio Hast du eine Antwort bekommen? Würde meine Broll auch gerne steuern.
-
hi ja ich habe das mittels Skripten (anders ist die Logik m.E. nicht abbildbar) hinbekommen.... anschließend ist der hmip-broll mit cloud-accesspoint auch in yahka / HomeKit verwendbar
Skript-Blockly sieht beispielhaft (auf eigene Installation anzupassen) für einen Rolladen wie folgt aus
yahka dann wie folgt
das funktioniert bei mir einwandfrei mit Status anzeige öffnen/schließen in HomeKit
-
Hi, ich versuche momentan ein erstes Skript zu schreiben, dass das Licht an der Treppe anschaltet, wenn der HomematicIP-Durchgangsensor aktiviert wird. Mein bisheriger Ansatz sieht so aus:
function ChangeLight(){ var betreten = getState("hmip.0.devices.3014F711A0000C5709AE731E.channels.1.leftCounter").val + getState("hmip.0.devices.3014F711A0000C5709AE7352.channels.1.rightCounter").val; var verlassen = getState("hmip.0.devices.3014F711A0000C5709AE731E.channels.1.rightCounter").val + getState("hmip.0.devices.3014F711A0000C5709AE7352.channels.1.leftCounter").val; if(betreten-verlassen != 0){ setState("alexa2.0.Smart-Home-Devices.b561c566-3b16-4c02-b7b1-f51d8fd97282.powerState",true); setState("alexa2.0.Smart-Home-Devices.4a33d6e9-5442-495a-b786-55540825085f.powerState",true); } else { setState("alexa2.0.Smart-Home-Devices.b561c566-3b16-4c02-b7b1-f51d8fd97282.powerState",false); setState("alexa2.0.Smart-Home-Devices.4a33d6e9-5442-495a-b786-55540825085f.powerState",false); } } on({id:"hmip.0.devices.3014F711A0000C5709AE731E.channels.1.leftCounter", change: "ne", ack: "true"}, ChangeLight()); on({id:"hmip.0.devices.3014F711A0000C5709AE7352.channels.1.rightCounter", change: "ne", ack: "true"}, ChangeLight()); on({id:"hmip.0.devices.3014F711A0000C5709AE731E.channels.1.rightCounter", change: "ne", ack: "true"}, ChangeLight()); on({id:"hmip.0.devices.3014F711A0000C5709AE7352.channels.1.leftCounter", change: "ne", ack: "true"}, ChangeLight());
Das An- und Ausschalten des Lichts alleine funktioniert problemlos, aber aus irgendeinem Grund klappt das mit dem Triggern nicht richtig. Hier ist noch mein Log, falls das hilft:
2021-01-04 16:02:01.259 - info: javascript.0 (3684) Start javascript script.js.common.Test 2021-01-04 16:02:01.266 - info: javascript.0 (3684) script.js.common.Test: registered 4 subscriptions and 0 schedules 2021-01-04 16:02:09.953 - warn: javascript.0 (3684) State "undefined" not found 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at Object.setState (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1358:20) 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at Object.callback (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1041:33) 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at Object.callback (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1055:38) 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at Object.stateChange (C:\ioBroker\node_modules\iobroker.javascript\main.js:472:25) 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at Immediate._onImmediate (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:5384:37) 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at processImmediate (internal/timers.js:456:21) 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at process.topLevelDomainCallback (domain.js:137:15) 2021-01-04 16:02:15.472 - warn: javascript.0 (3684) State "undefined" not found 2021-01-04 16:02:15.472 - warn: javascript.0 (3684) at Object.setState (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1358:20) 2021-01-04 16:02:15.473 - warn: javascript.0 (3684) at Object.callback (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1041:33) 2021-01-04 16:02:15.473 - warn: javascript.0 (3684) at Object.callback (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1055:38) 2021-01-04 16:02:15.473 - warn: javascript.0 (3684) at Object.stateChange (C:\ioBroker\node_modules\iobroker.javascript\main.js:472:25) 2021-01-04 16:02:15.473 - warn: javascript.0 (3684) at Immediate._onImmediate (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:5384:37) 2021-01-04 16:02:15.473 - warn: javascript.0 (3684) at processImmediate (internal/timers.js:456:21) 2021-01-04 16:02:15.473 - warn: javascript.0 (3684) at process.topLevelDomainCallback (domain.js:137:15)
Ich bin noch ziemlich am Anfang, deshalb entschuldigt bitte, falls es eine dumme Frage ist. Ich würde mich freuen wenn jemand helfen kann.
Viele Grüße,
Pascal -
@smart-home-neuling sagte in Homematic IP Cloud Access Point Adapter:
...aber aus irgendeinem Grund klappt das mit dem Triggern nicht richtig.
Was bedeute das?
Ich habe selbst SPDRs im Einsatz. Allerdings sind meine Skripte mit Blockly gemacht.
-
@oFbEQnpoLKKl6mbY5e13 Wenn ich das richtig verstehe sollte die on(...)-Funktion den Status eines Datenpunktes überwachen (z.B. den vom leftCounter des SPDR). Sobald sich dieser Status ändert (also wenn jemand an dem Sensor vorbeigeht) sollte dann die Funktion ChangeLight() aufgerufen werden, die dann entsprechend der Counter-Werte das Licht an oder ausschaltet. Aber das passiert eben leider nicht.
Ich habe bisher noch nie mit Blockly gearbeitet, aber auf den ersten Blick erscheint es mir sehr viel komplizierte als das Skript-Schreiben... Gibt es da irgendwo eine gute Einführung mit der man das lernen kann?
-
Blockly muss man nicht lernen und wenn du Javascript beherrschst, dann bleib dabei. Ich wünschte, ich könnte das.
Aber zum Thema: in den Datenpunkten leftCounter und rightCounter steht eine Zahl, die sich mit jedem Durchgang erhöht.
Ändere dein Skript so ab, dass du auf Erhöhung des Wertes triggerst: "Wenn Wert größer als vorher, dann"Der entsprechende Blockly-Baustein nach Javascript gewandelt:
on({id: "Object ID", change: "gt"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
}); -
@oFbEQnpoLKKl6mbY5e13 Das ändert leider nichts, ich erhalte dieselbe Warnmeldung im Log. Es scheint irgendein Problem mit der Statusänderung des Datenpunkts zu geben, aber ich habe noch nicht genug Erfahrung mit Javascript um genau sagen zu können wo der Fehler liegt.