NEWS
Fenster und andere Geräte zählen opt. Alexa Ansagen
-
@dslraser Xiaomi Fensterkontakte mit deconz werden korrekt erkannt. Auch das Zählen des neuen Skript funktioniert wie beschrieben. Good job!
Was ich noch bräuchte wären die Icons für Tür auf und Tür zu für iQontrol.
Als Idee (nicht zwingend notwendig): Wäre es ggf. möglich dem Datenpunkten, die die Fenster die offen, gekippt oder beides sind als Maximalwert die Gesamtanzahl der Fenster einzukonfigurieren? Somit würde die Leiste der Ansicht in iQontrol (und sicher auch in anderen GUIs) das Verhältnis der offenen Türen besser darstellen.
Hier ohne Maximalwert:
Hier mit Maximalwert manuell konfiguriert. (sind 6 Fenster insgesamt)
-
@dslraser Noch eine Sache: Wenn alles geschlossen ist, steht in der Telegrammnachricht zwischen Dem Wort "Türen" oder "Fenster" und dem Wort "sind" zwei Leerzeichen statt nur eines. Im Skript habe ich meine Eintragungen kontrolliert, hier ist kein Leerzeichen am Ende was zu diesem Fehler führen könnte.
-
@siggi85 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Als Idee (nicht zwingend notwendig): Wäre es ggf. möglich dem Datenpunkten, die die Fenster die offen, gekippt oder beides sind als Maximalwert die Gesamtanzahl der Fenster einzukonfigurieren? Somit würde die Leiste der Ansicht in iQontrol (und sicher auch in anderen GUIs) das Verhältnis der offenen Türen besser darstellen
Da hast Du recht, aber es werden erst die Datenpunkte erstellt, da kennt das Blockly die Anzahl der Fenster noch nicht. Das lässt sich ja dann über den Schraubenschlüssen in iQontrol anschließend einstellen.
Edit: ich habe hier unten auch noch die Anzahl drinn.
-
@siggi85 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Noch eine Sache: Wenn alles geschlossen ist, steht in der Telegrammnachricht zwischen Dem Wort "Türen" oder "Fenster" und dem Wort "sind" zwei Leerzeichen statt nur eines
schaue ich mir nochmal an.
-
@dslraser Dachte man kann den Wert vielleicht updaten wenn er noch nicht gesetzt ist, dann müsste man ihn beim Anlegen gar nicht direkt mitgeben. Aber die maximale Anzahl an Fenster gebe ich auch gerne händisch in den Datenpunkt, ist ja nur ne Kleinigkeit und kein Problem.
Ich nutze deine Skripte erst seit kurzem und da ist noch eine Sache die ich benötige (kann anhand der Daten auch selber was bauen wenn es nicht in dein Konzept passt oder kein anderer dies benötigt).
Per Telegram lasse ich UND meine Frau sich bei Bedarf den Fensterzustand senden. In deinem Skript kann man ja nur einen festen Nutzer definieren.- Möglichkeit: Kann man es nicht so bauen, dass bei Ausführung des Telegram Buttons der letzte User die Nachricht bekommt? Also quasi jeder User berechtigt ist, sich die Infos zu holen? Im DP telegram.0.communicate.request steht ja neben dem letzten Kommando in geschweiften Klammern der letzte User drin.
- Möglichkeit: Einen Datenpunkt anlegen, indem der User drin steht, der die Nachricht erhält (statt dem statischen Zuweisen per Blockly Variable). Dann kann man vor jeder Ausführung bei Bedarf den User ändern lassen. (auch wenn man sich dann wieder ein Hilfsskript bauen müsste, welches vor dem Button den User Datenpunkt anpasst) Wenn nichts drin steht, wird es entweder gar nicht, oder an alle gesendet.
- Möglichkeit: Den Telegram Text (also der aktuelle Zustand) in einem Datenpunkt schreiben der ebenso bei jeder Änderug aktualisiert wird. Dann ist es einfach per Skript oder text2command den Text nach eigenen Regeln zu versenden (inkl. nur an den jeweiligen Nutzer).
Test2command Beispiel:
Ich finde dein Skript mega klasse! Hoffe meine Kommentare kommen nicht als Meckern rüber.
-
@dslraser Kurz vorm Schlafen kam mir noch eine Idee.
Oder 4. Möglichkeit: Mann kann mehrere User per Komma angeben und für jeden wird ein Button Datenpunkt angelegt. -
@siggi85 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Möglichkeit: Den Telegram Text (also der aktuelle Zustand) in einem Datenpunkt schreiben der ebenso bei jeder Änderug aktualisiert wird. Dann ist es einfach per Skript oder text2command den Text nach eigenen Regeln zu versenden (inkl. nur an den jeweiligen Nutzer).
Ideen sind immer willkommen.
Zu den Texten. In den Datenpunkten gibt es zwei (plus html) Datenpunkte, die auch immer den aktuellen Zustand haben. Einmal ist es Text mit den aktuell geöffneten/gekippten Fenstern und der andere enthält alle Fenster inklusive Zustand. (ohne Emojis)
Das mit dem letzten Telegram User könnte man sich überlegen zu integrieren, das habe ich im Telegram Menü bei mir auch so drinn.
Alle anderen Blocklys, für Licht, Steckdosen oder Bewegungsmelder ist das Ziel, es mit einem Blockly zu machen, was alles abdeckt, also nur kopiert werden muss und dann z.B. von Licht auf Steckdosen umgestellt werden kann. Das reduziert dann die Anzahl der verschiedenen Blocklys. Ich muss nur die Zeit dafür finden, aber das wird schon...
-
@dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Zu den Texten. In den Datenpunkten gibt es zwei (plus html) Datenpunkte, die auch immer den aktuellen Zustand haben. Einmal ist es Text mit den aktuell geöffneten/gekippten Fenstern und der andere enthält alle Fenster inklusive Zustand. (ohne Emojis)
Ich finde deine Formatierungen inkl. Emojis sehr gelungen, daher würde ich diese gerne mitnutzen. Ein Datenpunkt mit dieser Formatierung (neben dem bisherigen html-DP und der "Liste an offenen Fenstern"-DP) wäre für mich am einfachsten, weil ich den text2command Adapter für alle meine Menüpunkte in meinem Telegram Bot nutze und bisher auch so den Status ausgebe (halt nur mit meinem bisherigen Skript) Aber ich würde mich hier natürlich nach den Anforderungen der Masse richten.
-
Moin keine Ahnung, an was es liegt, heute sind es genau 11 Fenster (so wie es sein sollte).
Es gibt Dinge zwischen Himmel und Erde, die keiner versteht.
-
@siggi85 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Möglichkeit: Den Telegram Text (also der aktuelle Zustand) in einem Datenpunkt schreiben der ebenso bei jeder Änderug aktualisiert wird. Dann ist es einfach per Skript oder text2command den Text nach eigenen Regeln zu versenden (inkl. nur an den jeweiligen Nutzer).
Möglichkeit 3 ist jetzt drinn...In dem zusätzlichen DP steht die formatierte Ausgabe für Telegram/E-Mail mit Emojis drinn.
Testbeispiel...(Telegram muß auf Markdown stehen)
(Ich habe nur mich als Benutzer eingetragen, um meine Frau nicht beim testen zu nerven)
Telegram kommt dann so an (wie sonst auch)
Das Leerzeichen (was zu viel war) ist nun auch weg.
-
@falke69 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Moin keine Ahnung, an was es liegt, heute sind es genau 11 Fenster (so wie es sein sollte).
Es gibt Dinge zwischen Himmel und Erde, die keiner versteht.
Hast Du Dein System über Nacht vielleicht mal neu gestartet ?
-
nö, das System ist seit ca. 24 Stunden nicht neu gestartet. Geändert habe ich auch nichts gegenüber gestern.
Naja keine Ahnung woran es jetzt liegt.
Auf jeden Fall machst Du eine tolle Arbeit -
Ich habe im ersten Beitrag die Beschreibung im Spoiler der Fensteransage aktualisiert und die neuen Dateien (Fensteransage) zum Download in den Spoiler Fensteransage gepackt.
PS: alte Datenpunkte bitte löschen und iot einmal öffnen. Es kann auch sein das die Routine überprüft werden muss, da der Datenpunkt mit der "Nummerierung" anders ist.
-
@dslraser sagte in [Fenster und andere Geräte zählen opt. Alexa Ansagen](/post
Ich habe es jetzt mit dem text2command und dem neuen Datenpunkt umgesetzt. Aktualisierung etc. sieht gut aus. Allerdings ist die erste Zeile bei mir nicht dick geschrieben wenn ich es über diesen Datenpunkt löse. Die Emojis werden korrekt angezeigt. Wenn ich es über den Button auslöse, dann sieht es weiterhin gut aus.
Hier kurz einmal per Datenpunktausgabe und einmal per Button Datenpunkt.
EDIT: Die Aktualisierung hat doch nicht ganz hingehauen. Aktuell ist kein Fenster geöffnet, aber im neuen DP scheint es zu sagen, dass ein Fenster offen ist. (die anderen Datenpunkte stimmen!) Habe leider aber keine Zeit mehr das ausgiebig zu testen.
Melde mich später noch mal dazu, aber vielleicht ist hier ja noch ein Fehler drin. -
@siggi85 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Die Aktualisierung hat doch nicht ganz hingehauen.
Mist, hast recht...obwohl ich es probiert hatte.....Muss ich mir dann später nochmal ansehen, jetzt muß ich erstmal arbeiten.
Und was text2command anders macht kann ich Dir nicht sagen. Wenn ich den Wert aus dem DP mit einem Blockly Telegram verschicke, dann sorgen die Sternchen die Du da siehst für die Fettschrifft.
-
@dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
@siggi85 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Die Aktualisierung hat doch nicht ganz hingehauen.
Mist, hast recht...obwohl ich es probiert hatte.....Muss ich mir dann später nochmal ansehen, jetzt muß ich erstmal arbeiten.
Und was text2command anders macht kann ich Dir nicht sagen. Wenn ich den Wert aus dem DP mit einem Blockly Telegram verschicke, dann sorgen die Sternchen die Du da siehst für die Fettschrifft.
Habe es jetzt noch mal mit nem einzelnen Blockly vesucht. Wenn ich Parsemode default nutze, funktioniert es nicht. Mit Markdown läuft es. Jetzt muss ich nur noch rausfinden, wie ich text2command dazu bringe den Parsemode Markdown zu nutzen.
Funktioniert nicht:
Funktioniert:
sendTo("telegram", "send", { text: getState("0_userdata.0.Geraete_zaehlen_optional_Ansagen.Geraete_zaehlen.Fenster_zaehlen.Haus.08_offene_gekippte_Fenster_Liste_mit_Emojis").val, user: 'Siggi', parse_mode: "Markdown" });
-
ich habe Fehler mit dem neuen DP auch gefunden. Die Variablen sind halt einfach schneller. Ich habe jetzt eine kleine Verzögerung eingebaut, damit aktualisiert der DP korrekt. Ich schaue mal wie weite ich mit der Verzögerung runter gehen kann und stelle die Dateien heute Abend im ersten Beitrag neu ein.
-
versuch nochmal, neue Fensteransage Dateien sind im ersten Beitrag.
Und noch was anderes...ich nutze ein Telegram Menü ohne text2command, das ist dann deutlich flexibler. Ich weiß nicht ob Du das kennst ? Da kannst Du auch für jeden ein anderes Menü einrichten, wenn Du das willst. Also Dein Menü kann z.B. andere Funktionen haben als z.B. das von Deiner Frau. (geht aber auch das gleiche Menü für beide, oder eben auch noch mehr Personen)
Ist auch in Blockly gemacht.Hier in diesem Beitrag.
-
@dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
versuch nochmal, neue Fensteransage Dateien sind im ersten Beitrag.
Und noch was anderes...ich nutze ein Telegram Menü ohne text2command, das ist dann deutlich flexibler. Ich weiß nicht ob Du das kennst ? Da kannst Du auch für jeden ein anderes Menü einrichten, wenn Du das willst. Also Dein Menü kann z.B. andere Funktionen haben als z.B. das von Deiner Frau. (geht aber auch das gleiche Menü für beide, oder eben auch noch mehr Personen)
Ist auch in Blockly gemacht.Hier in diesem Beitrag.
Hi @dslraser! Ja jetzt scheint die Aktualisierung des neuen Datenpunktes korrekt zu funktionieren. Danke noch Mal dafür.
Wegen Telegram: Ich habe bereits in meinem kleinen Telegram-Menü-Skript verschiedene Menüs für mich und meine Frau. Die Aktionen in diesen Menüs steuere ich halt bisher über text2command, das ist schnell und relativ übersichtlich (damals war ich auch noch nicht so drin im ioBroker Game, hatte kein iQontrol und habe viel nur nach Anleitung gearbeitet) Keine Ahnung ob ich es noch mal genauso machen würde.
Heute nutzen wir für diese Ausgaben iQontrol; Telegram ist eher ne Art Fallback oder wenn man von unterwegs schnell was Abfragen will und zu "faul" ist ne VPN Verbindung aufzubauen. Daher investiere ich meine Zeit aktuell eher in andere Themen als das Telegram Menü auszubauen oder zu migrieren. Trotzdem noch mal danke für den Tipp. Kannte den Artikel sogar schon, der ist mir in der Vergangenheit schon Mal über den Weg gelaufen. -
Hi,
ich hab das mal für meine gesamte Wohnung umgesetzt, erhalte aber beim Start des Blockly folgende Fehlermeldung:javascript.0 2020-05-19 10:07:49.624 error (17349) at processTimers (internal/timers.js:492:7) javascript.0 2020-05-19 10:07:49.623 error (17349) at listOnTimeout (internal/timers.js:551:17) javascript.0 2020-05-19 10:07:49.623 error (17349) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2039:34) javascript.0 2020-05-19 10:07:49.623 error (17349) at Object.<anonymous> (script.js.common.Sonstiges.Status_FensterTuerenGesamt:524:5) javascript.0 2020-05-19 10:07:49.623 error (17349) at zaehlen (script.js.common.Sonstiges.Status_FensterTuerenGesamt:64:45) javascript.0 2020-05-19 10:07:49.623 error (17349) at getParentName (script.js.common.Sonstiges.Status_FensterTuerenGesamt:325:14) javascript.0 2020-05-19 10:07:49.622 error (17349) Error in callback: TypeError: name.substr is not a function
ENUM:
JS-Änderung:
Selektor im Blockly:
Habs jetzt 2mal ausprobiert. Im JS-Editor (bekam das Skript kaum auf O.o) hab ich auch Fehlermeldungen in rot:
Hab ich hier was übersehen? Wenn ja, bin ich leider twas blind
Danke euch und vG, Thorsten