@Diginix Fix ist im Git 2.0.9-RC05.
Übrigens so sieht meine Vis aus, wenn de State eines Raumchannels gefüllt ist:
@Diginix Fix ist im Git 2.0.9-RC05.
Übrigens so sieht meine Vis aus, wenn de State eines Raumchannels gefüllt ist:
Hallo zusammen,
ich habe mir mal den mihome-cacuum Adapter geforkt, weil ich dort eigentlich 2 neue Dinge implemtieren wollte:
Ich bin jetzt mal angefangen, den Adapter zu erweitern. Dabei habe ich festgestellt, dass die Erkennung der features, je nach Modell, ein bisschen unglücklich gelöst wurde. Ich habe das jetzt mal angepasst und dabei auch sofort Unterstützung für den Wassertabk hinzugefügt.
Bitte mal testen, insbesondere vlt. auch mal Leute mit einem S5 oder älteren Modellen
Hier mal ein Screenshot von der Wassrtank Erweiterung:
und noch mit den Räumen:
Sobald an den Räumen etwas geändert wird, einfach auf loadRooms clicken, dann wird das geupdatet.
Mittlerweile können auch manuelle Räume hinzugefügt werden, indem entweder der Inder der Karte verwendet wird oder die Koordinaten der Zone
Timer
Es können jetzt Timer erstellt werden, damit man den Roboter vom Internet nehmen kann... Diese werden aber nur angezeigt, wenn auch Räume unterstützt werden.
Dazu können in der config die Timer generell erstellt werden: (Achtung, hier wird das materialdesign verwendet, da muss man bei den selectboxen ganz außen rechts clicken. Ich denke, @Bluefox wird das Problem schon kennen, da es da schon workaround code gibt, es hat aber nichts mit dem Adapter zu tun)
Dann werden folgende Datenpunkte erstellt:
Die können dann dort auch direkt an-/und ausgeschaltet werden oder auch einf einmal ausgesetzt werden. Die Räume können entweder über die Konfiguration oder über die Datenpunkte geändert werden. Nur die Tage/Zeiten müssen über die Konfiguration angepasst werden oder wenn ihr direkt einen Raumchannel antriggern wollt.
Direkt am channel Timer selber seht dann immer der nächste auszuführende Timer.
Die Datenpunkte können so auch schön in eine vis eingebunden werden und dort dannauch verändert werden.
Ihr könnt den jetzt über github installieren
https://github.com/iobroker-community-adapters/ioBroker.mihome-vacuum
gruß
Dirk
Sonst hätte ich hier auch noch ein kleines Script
(function(){
const id_alexa= "alexa2.0.Echo-Devices.xxxxxxx.Commands.speak";
const id_cal= 'ical.0.events.';
const id_cal_homeoffice_now= id_cal + '0.now.Homeoffice';
const id_Heizung_Buero= 'fritzdect.0.Comet_11xxx32';
on({id: id_cal_homeoffice_now, change:"ne"}, function(obj){
let temp= obj.state.val
? (getState(id_Heizung_Buero + '.comfytemp').val || 22)
: (getState(id_Heizung_Buero + '.nighttemp').val || 16) ;
setState(id_Heizung_Buero + '.targettemp', temp);
setState(id_alexa, '60;Die Heizung im Büro wurde auf ' + temp + ' Grad eingestellt');
});
schedule({hour: 19, minute: 0}, function(){
['Restabfall','Altpapier','GelberSack'].forEach(function(value){
if (getState(id_cal + '1.' + value).val === true)
setState(id_alexa, '60;Morgen ist ' + value);
})
});
schedule({hour: 7, minute: 0}, function(){
['Restabfall','Altpapier','GelberSack'].forEach(function(value){
if (getState(id_cal + '0.today.' + value).val === true)
setState(id_alexa, '60;Heute ist ' + value);
})
});
})();
Das mit dem Homeoffice kannst du löschen, ist halt mein aktuelles Kalender Script...
Allerdings braucht man noch ein kleinen Doc im iCal adapter, siehe https://github.com/iobroker-community-adapters/ioBroker.ical/issues/103
Gruss
Dirk
Aktuelle Test Version | 3.8.5 |
---|---|
Veröffentlichungsdatum | 30.10.2022 |
Github Link | https://github.com/iobroker-community-adapters/ioBroker.mihome-vacuum |
Hier Adapter Beschreibung, Changelog etc.
Ich habe in letzter Zeit einige Anpassungen in dem Adapter gemacht, das meiste war für die neuen S7 Modelle.
Da Meistertr, der die die Hauptarbeit an dem Adapter nicht mehr weiter macht, werde ich weiter ein Auge auf den Adapter haben. Das bezieht sich aber in der Hauptsache auf Bugfixes und ggf Kleinigkeiten, wie zum Beispiel von neueren Geräten eine neue Funktionalität einzubauen. Dazu brauche ich dann aber konkrete Hilfe, also wie der interne Befehl heißt oder welche Werte da auch angenommen werden können. Oft kann ich das dann einbauen, wenn die Kollegen zb. bei
https://github.com/marcelrv/XiaomiRobotVacuumProtocol oder https://github.com/rytilahti/python-miio das schon implementiert haben.
Karten
Ich selber nutzte die Karten nicht, daher hatte ich mich in der Vergangenheit da auch nicht groß drum gekümmert. Da wäre es gut, wenn sich jemand finden würde, der die nutzt und sich darin einarbeiten möchte. Meistertr hat zum Abschied noch ein paar neue Features, wie Teppicherkennung und automatisches Zoom eingebaut.
Dream Modelle
Es gibt immer wieder zig Anfragen, die Dream Modelle mit aufzunehmen, aber die Ticken halt alle ein bisschen anders. Wer sich dazu berufen fühlt, diese alle zu implementieren, ist herzlich eingeladen, das zu tun. Ich kann da gerne unterstützen, wenn es um das Verstehen des code geht, denn der ist über die Jahre mit den vielen Modellen leider nicht immer ganz so übersichtlich. Ich habe auch eine Zeit gebraucht, mich da einzuarbeiten.
So, jetzt geht es aber erst mal darum, die aktuelle Version 3.8.0 rund zu bekommen, dass wir die mal in stable bekommen.
Update:
So dass Logging wurde weiter angepasst, so dass das meiste jetzt im debug level landen sollte.
Dann habe ich noch ein Problem festgestellt, was mit der neuen Version reingekommen ist, dass es bei einem internen reconnect dazu kam, dass er eine neue Instanz geladen hat, was dann zu Effekten führte, dass er manche Sachen mehrfach getriggert hat. Bei mir hat er die Queue vollgemacht und der robbi ist zig mal gelaufen, oder das reinigen wurde gestartet aber nicht in den Status geschrieben oder auch erhöhte CPU Last. Das ist in der 3.8.5 gelöst sein
Ist mit der 3.8.8 jetzt produktiv
Ich habe gerade nochmal in den code geschaut. Sobald die connection weg ist, wartet er 10 sec und wenn dann immer noch offline, setzt er die connection auf false.
Man könnte drüber nachdenken, ob man states.power oder states.on dann ach schon direkt auf false setzt.
Das Problem ist jetzt, wie wir die Kuh vom Eis bekommen. Also ich denke, es braucht jetzt die Logs, damit bluefox sich anschauen kann, wo es klemmt. Er weiss am besten, was er geändert hat und warum.
@Bluefox vlt. Macht es Sinn, die 2.0.10 sich nun npm zur Verfügung zu stellen. Dann können Leute ggg. Die 2.1 testen und beobachten und dann schnell wieder zur funktionierenden zurückzukehren. Die 2.0.7 hat halt auch bugs
@saeft_2003 wir brauchen hier auf jeden Fall mal ein Debug-log.
Aber der Adapter sendet eigentlich erstmal nur "app_goto_target" mit den beiden Koordinaten zum Sauger. Wahrscheinlich können wir da gar nicht viel machen.
Aktuelle Test Version | 3.9.3 |
---|---|
Veröffentlichungsdatum | 04.01.2023 (3.9.0) |
Github Link | https://github.com/iobroker-community-adapters/ioBroker.mihome-vacuum |
Hier Adapter Beschreibung, Changelog etc.
3.9.0
3.9.1 <- bitte nicht mehr verwenden, ist fehlerhaft
3.9.2
3.9.3/3.9.4
3.10
Probiere es mal mit diesem regex
>\(([0-9]+) entitlements\)<
Ich hatte gestern nicht genau geschaut, die neuere Version ist noch nicht offiziell, ich hatte mich halt nur gewundert, weil die Zeilennummer nicht passt.
Gehe bei dir in der Datei iobroker/node_modules/iobroker.lgtv/lgtv.js ungefähr an Zeile 400 und suche mal folgendes:
if (~res.changed.indexOf('volume')){
volume = parseInt(res.volume);
adapter.setState('states.volume', volume, true);
}
if (~res.changed.indexOf('muted')){
adapter.setState('states.mute', res.muted, true);
}
mache daraus mal folgendes:
if (res && res.changed){
if (~res.changed.indexOf('volume')){
volume = parseInt(res.volume);
adapter.setState('states.volume', volume, true);
}
if (~res.changed.indexOf('muted')){
adapter.setState('states.mute', res.muted, true);
}
}
Wenn das hilft, können wir das in den Adapter übernehmen, allerdings vermute ich mal dass es da noch mehr solcher Änderungen gibt, dass muss dann ggf. alles angepasst werden
@elochso das musst du deinen robby fragen :). Der übermittelt ein segment ohne id. Zeig doch mal das debug log
Also ich compiliere mittlerweile alle immer selber. Das hat auch den großen Vorteil, dass man Zugangsdaten für mqtt und wlan fest mit eincompilieren kann. Wenn man dann mal auf werksreset klickt, weil gar nichts mehr geht (hatte ich zum Glück schon lange nicht menr), ist er direkt sofort wieder ansprechbar über wlan.
Man kann sich da wunderbar auch eigene profile bauen und dann in der config abfragen, was mit rein soll oder nicht.
@stefantaust so wie @Codierknecht schreibt, würde ich das auch machen.
Mach dir ejn array, wo du alle änderungsrelevanten punkte reischreibst und durchlaufe dann jeweils das array bis der schlüssel > als dein gesuchter wert ist
@rushmed man sieht hier gar nichts im log, das ist schon komisch, normalerweise schreibt er bei debug docn haarklejn, was er macht. Der stürzt einfach nur ab, irengdwas ist mit deinem gesamtsystem nicht io, fürchte ich.
Wenn du die karten mal ausschaltest, laufen denn dann beide instanzen?
@akuehnemann73 ggf. Hat er sich mal eine queue aufgebaut, weil er den robby nicht erreicht hat. Gehe mal auf clearqueue unter control.
@mika84 Also ich habe deine Datei gerade eingelesen und bekomme auch alle angezeigt.
[
{
"id": "2tummvmig9o65vf4u6qn7h7ffo@google.com",
"calendarName": "test 1",
"summary": "NormalEvent3",
"date": "2024-07-02T11:00:00.000Z",
"startTime": "13:00",
"endTime": "14:00",
"timeText": "from 13:00 until 14:00",
"dateText": "today"
},
{
"id": "1pus6bgnr67n61frdui1c0us08@google.com",
"calendarName": "test 1",
"summary": "NormalEvent4",
"date": "2024-07-02T12:30:00.000Z",
"startTime": "14:30",
"endTime": "15:30",
"timeText": "from 14:30 until 15:30",
"dateText": "today"
},
{
"id": "5vfaqnm9m61p6spmgsj0r7rsse@google.com",
"calendarName": "test 1",
"summary": "NormalEvent",
"date": "2024-07-03T11:00:00.000Z",
"startTime": "13:00",
"endTime": "14:00",
"timeText": "from 13:00 until 14:00",
"dateText": "Tomorrow"
},
{
"id": "43bu69jm5bck63u8d010r6u4fs@google.com",
"calendarName": "test 1",
"summary": "NormalEvent1",
"date": "2024-07-04T11:00:00.000Z",
"startTime": "13:00",
"endTime": "14:00",
"timeText": "from 13:00 until 14:00",
"dateText": "in 2 days"
},
{
"id": "7cgc8gas0mefjpaknj6np0j16j@google.com",
"calendarName": "test 1",
"summary": "Orchester",
"date": "2024-07-10T14:30:00.000Z",
"startTime": "16:30",
"endTime": "17:30",
"timeText": "from 16:30 until 17:30",
"dateText": "in 8 days"
},
{
"id": "0gdt7e58bukrv2amaur6q3r499@google.com",
"calendarName": "test 1",
"summary": "www",
"date": "2024-07-11T16:00:00.000Z",
"startTime": "18:00",
"endTime": "19:00",
"timeText": "from 18:00 until 19:00",
"dateText": "in 9 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-17T15:30:00.000Z",
"startTime": "17:30",
"timeText": "from 17:30",
"dateText": "in 15 days"
},
{
"id": "7cgc8gas0mefjpaknj6np0j16j@google.com",
"calendarName": "test 1",
"summary": "Orchester",
"date": "2024-07-17T14:30:00.000Z",
"startTime": "16:30",
"endTime": "17:30",
"timeText": "from 16:30 until 17:30",
"dateText": "in 15 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-18T15:30:00.000Z",
"timeText": "all day",
"dateText": "in 16 days"
},
{
"id": "0gdt7e58bukrv2amaur6q3r499@google.com",
"calendarName": "test 1",
"summary": "www",
"date": "2024-07-18T16:00:00.000Z",
"startTime": "18:00",
"endTime": "19:00",
"timeText": "from 18:00 until 19:00",
"dateText": "in 16 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-19T15:30:00.000Z",
"timeText": "all day",
"dateText": "in 17 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-20T15:30:00.000Z",
"timeText": "all day",
"dateText": "in 18 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-21T15:30:00.000Z",
"timeText": "all day",
"dateText": "in 19 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-22T15:30:00.000Z",
"endTime": "18:30",
"timeText": "until 18:30",
"dateText": "in 20 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-24T15:30:00.000Z",
"startTime": "17:30",
"timeText": "from 17:30",
"dateText": "in 22 days"
},
{
"id": "7cgc8gas0mefjpaknj6np0j16j@google.com",
"calendarName": "test 1",
"summary": "Orchester",
"date": "2024-07-24T14:30:00.000Z",
"startTime": "16:30",
"endTime": "17:30",
"timeText": "from 16:30 until 17:30",
"dateText": "in 22 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-25T15:30:00.000Z",
"timeText": "all day",
"dateText": "in 23 days"
},
{
"id": "0gdt7e58bukrv2amaur6q3r499@google.com",
"calendarName": "test 1",
"summary": "www",
"date": "2024-07-25T16:00:00.000Z",
"startTime": "18:00",
"endTime": "19:00",
"timeText": "from 18:00 until 19:00",
"dateText": "in 23 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-26T15:30:00.000Z",
"timeText": "all day",
"dateText": "in 24 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-27T15:30:00.000Z",
"timeText": "all day",
"dateText": "in 25 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-28T15:30:00.000Z",
"timeText": "all day",
"dateText": "in 26 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-29T15:30:00.000Z",
"endTime": "18:30",
"timeText": "until 18:30",
"dateText": "in 27 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-07-31T15:30:00.000Z",
"startTime": "17:30",
"timeText": "from 17:30",
"dateText": "in 29 days"
},
{
"id": "7cgc8gas0mefjpaknj6np0j16j@google.com",
"calendarName": "test 1",
"summary": "Orchester",
"date": "2024-07-31T14:30:00.000Z",
"startTime": "16:30",
"endTime": "17:30",
"timeText": "from 16:30 until 17:30",
"dateText": "in 29 days"
},
{
"id": "2dtpkjl55nso27eometl3it1qe@google.com",
"calendarName": "test 1",
"summary": "test",
"date": "2024-08-01T15:30:00.000Z",
"endTime": "18:30",
"timeText": "until 18:30",
"dateText": "in 30 days"
},
{
"id": "0gdt7e58bukrv2amaur6q3r499@google.com",
"calendarName": "test 1",
"summary": "www",
"date": "2024-08-01T16:00:00.000Z",
"startTime": "18:00",
"endTime": "19:00",
"timeText": "from 18:00 until 19:00",
"dateText": "in 30 days"
}
]
@mika84 bin noch nicht dazu gekommen, aber wenn es 2 einträge für dieselbe uhrzeit gibt, macht es ja sinn, den nicht anzuzeigen. Wie gesagt, dasist alles eventbasiert. Wenn du ein catchAll event anlegst, wird er ja nur die uhrzeiten für einen tag suchen..
Leg doch mal 3 events an und schau ob er die richtig anzeigt. Denn so ist es eigentluch gedacht, dass fu für so ein event die datenpunkte bekommst, wo du dann per script oder vis drauf reagieren kannst und auch per vis einen weiteren termin anlegen kannst
@jwerlsdf was mich aber auch wundert, ist das du token errors bekommst?
@chuck2941 die meldungen kommen von einem anderen adapter, damit bist du hier falsch