Hab mich nun doch für die Variante mit Shelly Plug S und der Wasserdichten Verlängerungsbox entschieden da mein Zigbee Netzwerk an der Stelle etwas schwach war.
Danke nochmal für den Tipp. Shelly war echt super einfach einzurichten und liefert schon erste Werte.
NEWS
Best posts made by Ronny Gerndt
-
RE: Außensteckdose mit Energiemessung
-
RE: jarvis v3.0.0 - just another remarkable vis
@mcu Ah super, hat nicht ganz geklappt. Mit
{ "type": "time", "min": "(value,ts,index) => { const now = new Date(new Date().getTime()); return new Date(now.getFullYear(), now.getMonth(), now.getDate()).getTime()}", "max": "(value,ts,index) => { const now = new Date(new Date().getTime()); return new Date(now.getFullYear(), now.getMonth(), now.getDate()+1).getTime()}" }
ging es bei mir. Bei Min ist in dem Beispiel noch ein -1 dabei, dann waren die Werte von gestern auch noch dabei.
-
RE: Alexa frage stellen lassen
@mcu Ich denke mal es ging @apollon77 eher darum das man über cloud/iot direkt die SimpleApi ansprechen kann und nicht im eigenen Router was freigeben muss. Zugriff auf die SimpleApi braucht man in jedem fall.
-
Notion Integration in ioBroker Javascript
Guten Tag,
da im Adapter Request Github Repo (https://github.com/ioBroker/AdapterRequests/issues/731) die Frage aufkam wie ich im JS eine einfache Notion Integration hinbekommen habe möchte ich das hier mal kurz beschreiben. Wer notion nicht kennt findet hier Infos dazu: https://www.notion.so/product , ich nutze es aktuell für ToDo Listen, es kann aber noch einiges mehr.
Zuerst benötigt man in Notion eine eigene Integration(https://www.notion.so/my-integrations)
Dazu einfach mittels New Integration eine neue anlegen, ein Name muss vergeben werden und der richtige Workspace muss gewählt werden. Der Rest kann auf Standard bleiben.Nach dem Anlegen einmal die neue Integration öffnen und den Token kopieren, dieser wird später benötigt.
Anschließend muss in Notion an den Datenbanken/Dokumenten die ansprechbar sein sollen die neue Integration hinzugefügt werden. Dazu auf Share klicken und die Integration "Einladen".
Nun kommen wir zum ioBroker part. Hier muss in der Javascript Instanz das "Zusätzliche NPM-Module" "@notionhq/client" hinzugefügt werden.
Ich werfe nun einfach mal meinen Code hier rein, der Token wurde oben kopiert. Die DatabaseId findet man in der URL.
const { Client } = require("@notionhq/client") const notion = new Client({ auth: 'Token der Integration' }); const _databaseId = 'Database_Id'; async function addItem(databaseId, text, state) { const response = await notion.pages.create({ parent: { database_id: databaseId }, properties: { title: { title:[ { "text": { "content": text } } ] }, 'Status': { select: { name: state }, } } }); return response.id; } async function getPage(pageId) { return await notion.pages.retrieve({ page_id: pageId }); } async function getDatabase(databaseId) { return await notion.databases.retrieve({ database_id: databaseId }); } async function getItemsInState(databaseId, state) { const response = await notion.databases.query({ database_id: databaseId, filter: { property: 'Status', select: { equals: state } } }); return response; } async function updateItemState(pageId, newState) { try { await notion.pages.update({ page_id: pageId, properties: { 'Status': { select: { name:newState }, }, }, }); } catch (error) { console.error(error.body) } } let itemId = await addItem(_databaseId, 'Test from iobroker', 'To Do'); await updateItemState(itemId, 'Doing'); var page = await getPage(itemId); var results = await getItemsInState(_databaseId, 'Doing'); console.log(results);
Das ganze legt nun einfach in meiner Task Liste einen neuen Eintrag mit dem Namen Test from ioBroker an und setzt den Status auf To Do.
Anschließend wird der Status auf Doing aktualisiert.
Und ein Beispiel für alle Einträge im Status Doing abzurufen.Alle weiteren Möglichkeiten der Api sind hier beschrieben: https://developers.notion.com/reference/intro
Vllt hilft das dem ein oder anderen weiter. Wenn nicht ist auch ok
Grüße
Ronny
-
RE: jarvis v3.0.0 - just another remarkable vis
Hab mir jetzt ein Converter Script gebastelt das mir 89,717 in 89.171 umwandelt und dann passt es auch mit der Anzeige.
Issue hab ich dennoch mal erstellt. -
RE: Alexa frage stellen lassen
@padrino Jo das ist ein Alexa Skill. Halt etwas einfacher gehalten als selbst in irgendeiner Programmiersprache etwas zu Coden.
Der Skill sorgt für die Interaktion zwischen Alexa und dir. Die Eingaben muss man halt irgendwie nutzen. Man kann das ganze auch mit mehreren Abfragen machen, dann wird es aber wieder schwerer über die Summery.
Beispiel: Farbwechsel an -> Alexa fragt Licht aus? -> Ja/Nein -> Alexa fragt Rolladen runter? -> Ja/Nein. Das kann man beliebig so weiter machen bis man genervt ist von den Fragen
-
RE: jarvis v3.0.0 - just another remarkable vis
@mcu Habs nun hinbekommen:
Im Script folgendes:let weightToShowNadine = 0; window.Socket.getState('0_userdata.0.jarvis.WeightNadine.WeightToShow', ({ err, state }) => { weightToShowNadine = state.val; }); window.Socket.subscribeState('0_userdata.0.jarvis.WeightNadine.WeightToShow', ({ err, state }) => { if(weightToShowNadine != state.val) { location.reload(); } });
und im Callback dann:
(val, ts, index) => { let test = weightToShowNadine; let hour = new Date(ts).getHours(); if(test === 0) { if(hour >= 5 && hour <= 12) { return val; } else { return null; } } else if(test === 1) { if(hour < 6 || hour > 12) { return val; } else { return null; } } else { return val; } }
Sieht nun soweit gut aus.
Nur geht das neu Laden des Graph noch etwas schicker als ein hartes neu Laden der Seite? -
RE: Seite neu Laden lässt ioBroker neustarten
@thomas-braun said in Seite neu Laden lässt ioBroker neustarten:
@ronny-gerndt
Das log file von heute kann man sich mitless /opt/iobroker/log/iobroker.current.log
anschauen.
Da sieht der Log genauso aus.
@Thomas-Braun ich bin grad mal deinen Linux Werkzeugkasten durchgegangen und habe damit das Problem gerade wie es aussieht eliminiert. Von NodeJs war nur Version 10.irgendwas installiert und von Node 14.16.0. Ich habe Nodejs nun mal auf die gleiche Version gezogen, also 14.16.0 und seitdem scheint es zu laufen. Zumindest habe ich in den letzten 10 Minuten keinen Neustart mehr gesehen.
-
RE: jarvis v3.0.0 - just another remarkable vis
@mcu Wenn ich in ioBroker den Wert von 0 auf 1 ändere komme ich zwar im subscribeState state an aber der Graph wird nicht neu gerendert.
window.Socket.subscribeState('0_userdata.0.jarvis.WeightNadine.WeightToShow', ({ err, state }) => { if(weightToShowNadine != state.val) { weightToShowNadine = state.val; } });
Auch wenn ich den Tab Wechsel findet kein neu Zeichnen des Graphs statt. Nur ein neu Laden der Seite macht das.
Edit: Ok, nachdem der Aktualisierungsintervall abgelaufen ist wurde der Graph neu gezeichnet. Würde das gerne etwas schneller hinbekommen
-
RE: TESTER: Neuer Adapter Webuntis
Da nun wieder das neue Schuljahr gestartet ist versuch ich mal für meinen Sohn und auch mich die wichtigsten Infos aus Webunits in meiner Visualisierung darzustellen. Was aktuell noch fehlt wären die Hausaufgaben. Kann man die noch abfragen und bereitstellen?
Latest posts made by Ronny Gerndt
-
RE: info Alexa-Push-Connection
Bei mir geht leider auch Mal wieder nix mehr. History aktualisiert sich nicht mehr. Neustart hat auch nix geholfen.
-
RE: jarvis v3.0.0 - just another remarkable vis
@ch90045 Eventuell funktioniert das bei dir auch. Ich hatte mal was ähnliches was ich damit gelöst hatte.
-
RE: jarvis v3.0.0 - just another remarkable vis
@mcu Wenn ich in ioBroker den Wert von 0 auf 1 ändere komme ich zwar im subscribeState state an aber der Graph wird nicht neu gerendert.
window.Socket.subscribeState('0_userdata.0.jarvis.WeightNadine.WeightToShow', ({ err, state }) => { if(weightToShowNadine != state.val) { weightToShowNadine = state.val; } });
Auch wenn ich den Tab Wechsel findet kein neu Zeichnen des Graphs statt. Nur ein neu Laden der Seite macht das.
Edit: Ok, nachdem der Aktualisierungsintervall abgelaufen ist wurde der Graph neu gezeichnet. Würde das gerne etwas schneller hinbekommen
-
RE: jarvis v3.0.0 - just another remarkable vis
@mcu Habs nun hinbekommen:
Im Script folgendes:let weightToShowNadine = 0; window.Socket.getState('0_userdata.0.jarvis.WeightNadine.WeightToShow', ({ err, state }) => { weightToShowNadine = state.val; }); window.Socket.subscribeState('0_userdata.0.jarvis.WeightNadine.WeightToShow', ({ err, state }) => { if(weightToShowNadine != state.val) { location.reload(); } });
und im Callback dann:
(val, ts, index) => { let test = weightToShowNadine; let hour = new Date(ts).getHours(); if(test === 0) { if(hour >= 5 && hour <= 12) { return val; } else { return null; } } else if(test === 1) { if(hour < 6 || hour > 12) { return val; } else { return null; } } else { return val; } }
Sieht nun soweit gut aus.
Nur geht das neu Laden des Graph noch etwas schicker als ein hartes neu Laden der Seite? -
RE: jarvis v3.0.0 - just another remarkable vis
@mcu Ne das geht leider nicht. window.Socket.getState ist async. Liefert also ein Promise zurück. Habe es nun mal mit folgendem versucht:
async (val, ts, index) => { let test = (await window.Socket.getState('0_userdata.0.jarvis.WeightNadine.WeightToShow')).val; let hour = new Date(ts).getHours(); if(test === 0) { if(hour >= 5 && hour <= 12) { return val; } else { return null; } } else if(test === 1) { if(hour < 6 && hour > 12) { return val; } else { return null; } } else { return val; } }
Liefert auch die korrekten Werte (laut log) zurück. Leider wird der Callback aber wohl nicht awaited und das Rendern des Graphs läuft weiter ohne auf die Ergebnisse zu warten. Er ist also dann einfach leer
-
RE: jarvis v3.0.0 - just another remarkable vis
@mcu
Ich dachte an sowas:
(val, ts, index) => {if(getState('x.y').val) { if(new Date(ts).getHours() >= 6 && new Date(ts).getHours() <= 12) return val; else return null} else return val}Ich möchte also einen bool State lesen und anhand dessen dann die Werte filtern
-
RE: jarvis v3.0.0 - just another remarkable vis
Das ist mein Callback:
(val, ts, index) => {if(new Date(ts).getHours() >= 6 && new Date(ts).getHours() <= 12) return val; else return null}
Da hätte ich gerne noch eine Abfrage nach einem State mit dabei. -
RE: jarvis v3.0.0 - just another remarkable vis
Ist es möglich in einem HistoryGraph Werte anhand eines States auszufiltern? Ich habe im Callback bereits einen Filter eingebaut der funktioniert. Diesen würde ich aber gerne abhängig von einem State machen.
-
RE: Alexa2 Version 3.24.+
Habs nun auch über den Dummy Schalter gelöst. Nicht wirklich schön aber funktioniert. Danke für den Tipp