Skip to content

ioBroker Allgemein

29.8k Topics 438.2k Posts
Integrationtsplattform für IoT

NEWS

  • JS Controller lässt sich nicht installieren Win10

    5
    0 Votes
    5 Posts
    243 Views
    sigi234S
    @sebbo1712 sagte in JS Controller lässt sich nicht installieren Win10: Nach dem ich das nodejs auf 16.16.0 geupdatet habe kann ich weder Admin aktualiesieren noch den Host (JS controller). Wie hast du auf 16 aktualisiert? Neue Beta: https://forum.iobroker.net/topic/55185/test-iobroker-unter-windows-installieren-2022-edition?_=1659631751545
  • Tahoma CONNEXOON

    8
    0 Votes
    8 Posts
    1k Views
    M
    @warp-it ansonsten schau auch hier mal https://forum.iobroker.net/topic/8169/anfrage-tahoma-somfy-io-adapter
  • ioBroker.zigbee Neue Geräte

    zigbee cc2531
    93
    0 Votes
    93 Posts
    16k Views
    L
    Und wenn ich mir die schon geschlossenen Requests anschaue, sehe ich, dass @arteck gestern tatsächlich tätig wurde. Das neue Modell ist jetzt drin und ich könnte einfach auf das nächste Versionsupdate des Zigbee-Adapters warten. [image: 1660131071684-deed4a2f-2dac-46fe-b09c-50ab50e48927-image.png] Den Vorgang nehme ich mit großem Interesse wahr. Auf den ersten Blick kann ja immer schnell der Eindruck gewonnen werden, dass das alles Selbstläufer-Themen wären. Sind es nicht... Danke an @Arteck, @Asgothian et al. ! Grüße Martin
  • [Gelöst] text2command mit Telegram: verkettete Befehle...?

    2
    0 Votes
    2 Posts
    405 Views
    HiltexH
    Ich habs hinbekommen :) Laut der Github-Doku des Adapters kann man Regeln auch per Script verarbeiten: https://github.com/ioBroker/ioBroker.text2command#external-rules-with-javascript Das Script reagiert immer auf Telegram-Eingaben, wird aber tatsächlich nur dann aktiv, wenn es das wirklich soll. Und so sieht es dann aus: [image: 1660131406334-project-name.gif] (sorry für die schlechte Qualität, das Original war viel zu groß für einen Upload hier) Der initiale Aufruf erfolgt über den text2command-Adapter: [image: 1660129164155-bildschirmfoto-2022-08-10-um-12.59.08-resized.png] Damit bei einem Neustart das Script nicht in einen undefinierten Zustand fährt, wird intern nochmal abgefragt, ob wirklich der Befehl gesendet wurde. Man kennt das ja, die ganzen Tastaturscripte werden ausgeführt, sobald man den Javascript-Adapter neustartet, wenn man keine Vorkehrungen trifft. Der Rest erklärt sich glaube ich von selbst. Was jetzt natürlich noch geschehen muss ist, dass das eingegebene Datum weiterverarbeitet werden muss, aber das ist ja ein ganz anderes Thema. Das Script benötigt diese Datenpunkte (bitte manuell anlegen): 0_userdata.0.Telegram.text2command.datePicker_Datum -> String 0_userdata.0.Telegram.text2command.datePicker_Jahr -> Number 0_userdata.0.Telegram.text2command.datePicker_Monat -> Number 0_userdata.0.Telegram.text2command.datePicker_Tag -> Number 0_userdata.0.Telegram.text2command.textProcessor -> String oder mixed Letzterer muss auch in den Einstellungen des text2command-Adapters hinterlegt werden. var today = new Date(); var currentYear = today.getYear() + 1900; var currentMonth = today.getMonth(); var currentDay = today.getDate(); var currentWeekday = today.getDay(); const months = ['Jan','Feb','Mrz','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez']; var year = 0; var month = 0; var day = 0; function go() { // Bei Auslösung Status schreiben damit klar ist, dass reagiert werden muss setState("0_userdata.0.Telegram.text2command.datePicker_Datum", 'running'); // Mit Jahreseingabe beginnen keyboardYear(); }; function keyboardYear () { // Tastatur für die Jahresauswahl zusammenbauen var yearKeys = [ [currentYear.toString(), (currentYear + 1).toString()], [(currentYear + 2).toString(), (currentYear + 3).toString()], ["Abbrechen", ""] ] // Tastatur senden sendTo('telegram.0', { text: 'Jahr wählen', reply_markup: { keyboard: yearKeys, resize_keyboard: true, one_time_keyboard: false } }); }; function keyboardMonth () { // Tastatur für die Monatsauswahl zusammenbauen var avMonths = new Array(11); var monthKeys = new Array(4); year = getState("0_userdata.0.Telegram.text2command.datePicker_Jahr").val; for (let i = 0; i < 12; i++) { if (year == currentYear) { if (i < currentMonth) { avMonths[i] = " "; } else { avMonths[i] = months[i]; } } else { avMonths = months; } } monthKeys[0] = avMonths.slice(0,4); monthKeys[1] = avMonths.slice(4,8); monthKeys[2] = avMonths.slice(8); monthKeys[3] = ["Abbrechen",""]; // Tastatur senden sendTo('telegram.0', { text: 'Monat wählen', reply_markup: { keyboard: monthKeys, resize_keyboard: true, one_time_keyboard: false } }); }; function keyboardDay () { // Tastatur für die Tagesauswahl zusammenbauen var days = new Array(); var dayKeys = new Array(8); year = getState("0_userdata.0.Telegram.text2command.datePicker_Jahr").val; month = getState("0_userdata.0.Telegram.text2command.datePicker_Monat").val; let firstDay = new Date(year, month, 1).getDay(); let daysInMonth = new Date(year, month + 1, 0).getDate() // Tages-Array mit " " füllen, falls erster Tag nicht Montag if (firstDay == 0) { for (let i = 0; i < 6; i++) { days.push(" "); } } else if (firstDay > 1) { for (let i = 1; i < firstDay; i++) { days.push(" "); } } // Tage zum Array hinzufügen for (let i = 1; i <= daysInMonth; i++) { if (getState("0_userdata.0.Telegram.text2command.datePicker_Jahr").val == currentYear && getState("0_userdata.0.Telegram.text2command.datePicker_Monat").val == currentMonth) { if (i < currentDay) { days.push(" "); } else { days.push(i.toString()); } } else { days.push(i.toString()); } } // Rest mit " " füllen for (let i = days.length; i < 42; i++) { days.push(" "); } dayKeys[0] = ['M','D','M','D','F','S','S']; dayKeys[1] = days.slice(0,7); dayKeys[2] = days.slice(7,14); dayKeys[3] = days.slice(14,21); dayKeys[4] = days.slice(21,28); dayKeys[5] = days.slice(28,35); dayKeys[6] = days.slice(35); dayKeys[7] = ["Abbrechen"]; // Tastatur senden sendTo('telegram.0', { text: 'Tag wählen', reply_markup: { keyboard: dayKeys, resize_keyboard: true, one_time_keyboard: false } }); }; // Auf Eingabe reagieren on({id: "0_userdata.0.Telegram.text2command.textProcessor", change: "ne"}, async function (obj) { try { var task = JSON.parse(obj.state.val); // Start if (isNaN(task.command) && task.command == "Abwesenheit planen") { go(); } // Jahr eingegeben else if (!isNaN(task.command) && task.command >= currentYear && getState("0_userdata.0.Telegram.text2command.textProcessor").val != "" && getState("0_userdata.0.Telegram.text2command.datePicker_Datum").val == 'running' && getState("0_userdata.0.Telegram.text2command.datePicker_Jahr").val == 0 && getState("0_userdata.0.Telegram.text2command.datePicker_Monat").val == 0 && getState("0_userdata.0.Telegram.text2command.datePicker_Tag").val == 0) { // Jahr abspeichern setState("0_userdata.0.Telegram.text2command.datePicker_Jahr", Number(task.command), true); //Bestätigung an textProcessor setState("0_userdata.0.Telegram.text2command.textProcessor", 'Jahr gespeichert', true); // Monat aufrufen keyboardMonth(); } // Monat eingegeben else if (isNaN(task.command) && getState("0_userdata.0.Telegram.text2command.textProcessor").val != "" && getState("0_userdata.0.Telegram.text2command.datePicker_Datum").val == 'running' && getState("0_userdata.0.Telegram.text2command.datePicker_Jahr").val > 0 && getState("0_userdata.0.Telegram.text2command.datePicker_Monat").val == 0 && getState("0_userdata.0.Telegram.text2command.datePicker_Tag").val == 0) { // Monat abspeichern setState("0_userdata.0.Telegram.text2command.datePicker_Monat", months.indexOf(task.command), true); //Bestätigung an textProcessor setState("0_userdata.0.Telegram.text2command.textProcessor", 'Monat gespeichert', true); // Tag aufrufen keyboardDay(); } // Tag eingegeben else if (!isNaN(task.command) && getState("0_userdata.0.Telegram.text2command.textProcessor").val != "" && getState("0_userdata.0.Telegram.text2command.datePicker_Datum").val == 'running' && getState("0_userdata.0.Telegram.text2command.datePicker_Jahr").val > 0 && getState("0_userdata.0.Telegram.text2command.datePicker_Monat").val > 0 && getState("0_userdata.0.Telegram.text2command.datePicker_Tag").val == 0) { //Tag abspeichern setState("0_userdata.0.Telegram.text2command.datePicker_Tag", Number(task.command), true); //Bestätigung an textProcessor setState("0_userdata.0.Telegram.text2command.textProcessor", 'Tag gespeichert', true); //Datum zusammenbauen und in Datenpunkt schreiben setState("0_userdata.0.Telegram.text2command.datePicker_Datum", getState("0_userdata.0.Telegram.text2command.datePicker_Jahr").val + "-" + (getState("0_userdata.0.Telegram.text2command.datePicker_Monat").val + 1) + "-" + getState("0_userdata.0.Telegram.text2command.datePicker_Tag").val , true); //Einzel-DP für Datum zurücksetzen setState("0_userdata.0.Telegram.text2command.datePicker_Jahr", 0, true); setState("0_userdata.0.Telegram.text2command.datePicker_Monat", 0, true); setState("0_userdata.0.Telegram.text2command.datePicker_Tag", 0, true); //Bestätigung senden sendTo("telegram", "send", { text: 'Datum gespeichert' }); //zurück ins Hauptmenü setState("javascript.0.scriptEnabled.Telegram-Menu.000_menu", true); } //Abbrechen else if (isNaN(task.command) && task.command == "Abbrechen") { //Einzel-DP für Datum zurücksetzen setState("0_userdata.0.Telegram.text2command.datePicker_Jahr", 0, true); setState("0_userdata.0.Telegram.text2command.datePicker_Monat", 0, true); setState("0_userdata.0.Telegram.text2command.datePicker_Tag", 0, true); //Datum zurücksetzen setState("0_userdata.0.Telegram.text2command.datePicker_Datum", "", true); //Bestätigung an textProcessor setState("0_userdata.0.Telegram.text2command.textProcessor", 'Abbruch', true); //zurück ins Hauptmenü setState("javascript.0.scriptEnabled.Telegram-Menu.000_menu", true); } // Rückmeldung geben, dass das Script nicht reagieren wird else { setState("0_userdata.0.Telegram.text2command.textProcessor", '', true); } } catch { // do nothing } }); Was mich derzeit noch stört ist, dass im Log immer eine Warnung auftaucht, wenn ein Befehl gesendet wurde, auf den das Script nicht reagieren wird. Das halte ich aber für einen Bug, da die Rückmeldung, dass das Script nichts tun wird, ja korrekt ausgeführt wird. text2command.0 2022-08-10 13:27:06.692 warn Timeout for external processor: 0_userdata.0.Telegram.text2command.textProcessor Was mich außerdem stört ist, dass die Aufforderung zur nächsten Eingabe eher kommt, als die Bestätigung der letzten Eingabe. Das sieht im Chat-Verlauf echt komisch aus, aber ich habe noch keine Idee, woran das liegt und wie man das lösen könnte. Vielleicht kann das Ganze ja jemand gebrauchen - viel Spaß damit :) Für Verbessungsvorschläge bin ich offen, falls jemand welche hat.
  • Neuaufbau - Kein Recovery (NodeRed) mit BackitUp möglich

    3
    8
    4 Votes
    3 Posts
    880 Views
    mickymM
    Was lässt sich sonst zur 64-Bit Version sagen. Also der Speicherverbrauch ist tatsächlich spürbar um einiges höher (ca. 20%) - d.h. ich komme mit 80% schon nahe an die Systemgrenzen, das war vorher so knapp unter 60%. Die Grundlast was die CPU Last betrifft ist identisch Die Lastspitzen haben jedoch wesentlich abgenommen, die sind vorher auch mal deutlich über 50% gewesen und das ist nun nicht mehr der Fall. Insofern fühlt es sich performanter an. [image: 1660127424359-f78ece05-9f21-4b75-a0d7-4f496b96d40f-image.png]
  • USV per SNMP auslesen

    39
    1
    0 Votes
    39 Posts
    5k Views
    mcm1957M
    @roddief Danke für Feedback. Wenn dir bewußt ist was du tust ist es voll OK den Adapter einzusetzen. Ich wollte nur sicherstellen, dass ich niemand "verführe" einen wenig getesteten Adapter zu installieren und damit die Hausautomatisation lahmlege ohne des der / die BenutzerIn das selbst beheben kann. Schöne Grüße McM
  • Homekit Adapter - Dropdown Menü bleibt leer

    7
    0 Votes
    7 Posts
    216 Views
    Damrak2022D
    @lessthanmore in eigenen neuen Post verschoben
  • (Gelöst) Alexa, Lautstärke über zwei Buttons steuern

    3
    0 Votes
    3 Posts
    175 Views
    Damrak2022D
    @djmarc75 Dann war ich ja fast am Ziel. Nur ei Wert habe ich was falsches eingetragen - Danke
  • Flot: Diagramm nur bei Art "bei Änderung"

    24
    4
    0 Votes
    24 Posts
    816 Views
    R
    @homoran Ah jetzt verstehe ich das so langsam. Aggregation hat auch was mit der Auflösung und so zu tun. Vielen Dank für deine Geduld, du hast mir sehr geholfen.
  • Unterschied timeout und pause in Blockly

    pause timeout blockly
    35
    1
    0 Votes
    35 Posts
    15k Views
    X
    @paul53 Ich verstehe. Es waren natürlich zwei Variablem "timeout" vorhanden. In Blockly habe ich unter "Variablen" die Variable "timeout gelöscht. Jetzt fehlt mir allerdings der Block "timeout" das Du in Deinem Beispiel nutzt: [image: 1660056179662-5c155dc8-ec36-499b-9dbc-e0c69ee268f1-grafik.png] Wo bekomme ich den her? Edit: Habe es gefunden. Einfach einen Variablenblock einfügen und imDropDown dann "timeout" anwählen.
  • Anleitung Sonoff 4CH R2 flashen

    sonoff sonoff 4ch pro r2 sonoff tasmota
    16
    0 Votes
    16 Posts
    4k Views
    Basti97B
    @hohmannc ok ist auch einfacher als löten. :)
  • Trigger für Türöffner Mehrfamilienhaus

    7
    0 Votes
    7 Posts
    419 Views
    AsgothianA
    @flacedoo sagte in Trigger für Türöffner Mehrfamilienhaus: Hey zusammen, Ich bin auf der Suche nach einer eleganten Möglichkeit meinen Türöffner im Mehrfamilienhaus zu automatisieren, also in der Auto-Unlock Manier von Smart Locks. Bevor das Geschrei von Stromdiebstahl oder ähnlichem losgeht: Ich habe einen Türöffner der einen zusätzlichen, potenzialfreien Schalter zulässt der einfach nur zwei Drähte verbindet, an dem ich einen Shelly angeschlossen habe der wiederum an meiner normalen (gezählten) Stromversorgung hängt. Dadurch kann ich schon problemlos den Buzzer ansteuern. Jetzt aber zu meiner Frage: Wie könnte ich dieses elegant automatisch triggern lassen wenn ich unten an der Tür stehe? Ideen die ich bisher hatte wären in die Richtung iBeacon im Briefkasten von meinem iPhone aus erkennen lassen, oder andersherum irgendein Gerät dass mein iPhone erkennt und direkt eine Meldung an den ioBroker schickt. Bei letzterem ist besonders die WLAN Reichweite problematisch, bei ersterem bräuchte ich noch irgendeine zuverlässige App die das erkennt, und irgendeine Möglichkeit übers Internet (sicher) diesen State zu triggern. Habt ihr da irgendwelche kreativen Ideen / bewährte Lösungen die mir hier helfen könnten? Vielleicht auch etwas ganz anderes? Schon jetzt vielen Dank für eure Hilfe! Ich rate dringend davon ab irgend eine Automatik einzuführen die nur auf reine Anwesenheit triggert. Eine Trennung die scharf genug ist das sie erkennt das du vor der Tür stehst, nicht aber in der Wohnung bist ist komplex. Eine Anwendung die im Hintergrund auf deinem Telefon läuft und bei Erkennung eines Beacons direkt eine Aktion auslöst wird im Zweifelsfall die Batterie deines Telefons schnell leeren. Dazu kommt das Verhalten im Fehlerfall - wenn da der "Knopf" dauerhaft gedrückt bleibt weil das System glaubt du bist noch in der Nähe ist das nicht wirklich Sinnvoll. Beides kann bei den Nachbarn zu Verstimmung führen wenn die Haustür durch Deine "Automatik" automatisch offen steht. Wenn einer meiner Nachbarn das verursachen würde gäbe es sofort Streit. Zwischen dem "ich Klingel bei mir und die Tür geht auf" und "ich hol das Mobiltelefon aus der Tasche, mach die app auf und drück nen Knopf" ist nebenbei noch eine deutliche Trennung. Allerdings ist auch da das Problem des Erkennung das du unten vor der Tür klingelst (im Gegensatz zu "ein unliebsamer Besucher klingelt, du bist zu Hause und deine Elektronik macht die Tür auf). A. Nachtrag: Viele Türöffner reagieren auf eine dauerhafte Betätigung mit Hitzetod. Die Systeme sind auf kurzfristige Betätigung von wenigen Sekunden ausgelegt.
  • gelöst Redis conf ändern

    4
    0 Votes
    4 Posts
    381 Views
    W
    @aba320 Gilt generell für alle config-Dateien, die unter /etc/… liegen, dass die nur der root-User ändern darf. Also muss man da mit sudo ran, um sich für diesen Zweck mit root-Rechten auszustatten. Bitte aber NIEMALS generell als root anmelden. Und sudo nur, wenn es (wie hier) erforderlich ist! Gruss, Jürgen
  • Denon Adapter MainZone springt oft auf false

    1
    0 Votes
    1 Posts
    102 Views
    No one has replied
  • InfluxDB ständig Warnmeldungen

    3
    0 Votes
    3 Posts
    312 Views
    Y
    @mcu Vielen Dank für den Hinweis. Das werde ich mir mal anschauen.
  • Shelly im iobroker-Docker trotz macvlan nicht nutzbar

    9
    0 Votes
    9 Posts
    1k Views
    S
    @harrym Ich müsste mich in der "box of shame" verstecken, bin aber noch die Aufklärung schuldig: Kurz nach dem Aufrüsten mit RAM (Erfolgserlebnis dank 2h Suche in einem Synology Forum) habe ich neue IP-Bereiche in meinem Netzwerk vergeben (auch dafür gab es zum Glück ein Unifi Forum) und naja was soll ich sagen... NAS und Shellys waren in unterschiedlichen Netzen :man-facepalming: Läuft jetzt alles wieder nach Neustart der Shellys.. danke für die Hilfe dennoch!
  • Fritzbox rückwärtssuche mit iobroker?

    fritzbox 7590 fritzfon
    15
    0 Votes
    15 Posts
    3k Views
    F
    @gargano Dein Post hat mir damals sehr geholfen. Mir ist aber aufgefallen, dass sich offenbar der Aufbau der Seite von www.dasoertliche.de geändert hat, wodurch die Rückwärtssuche nicht mehr funktioniert. Mit folgenden Anpassungen funktioniert es bei mir zumindest wieder: var url = 'https://mobil.dasoertliche.de/Themen?nummer='+ nummer; Folgender regulärer Ausdruck liefert bei mir dann den Namen bzw. die Firma zur Rufnummer: var matches = response.data.match('<h2 class="tao-cb tao-b\">(.*)<\/h2>'); Vielleicht hilft das dem einen oder anderen, so wie es mir damals geholfen hat. ;-)
  • [Windows] iobroker Update schlägt fehl, nicht mehr lauffähig

    9
    0 Votes
    9 Posts
    815 Views
    D
    @arteck Ahh ok, manchmal seh ich den Wald vor lauter Bäumen nicht. Ich hab jetzt mal noch einen Neustart nach dem Kopieren gemacht und seit dem rödelt er fleißt. Krallt sich auch allen RAM den er bekommen kann.. Seit dem System_Neustart erzeugt er jetzt auch riesige Logfils. Ich hab jetzt auch bemerkt, das er nach dem reinschieben der Datein nicht mehr unter localhost:8081 erreichbar, aber unter localhost:8081/erreichbar ist. Ich taste mich jetzt erstmal vor und schaue was da die riesigen Logfiles erzeugt und wo die Fehler liegen, ich melde mich wenn ich wieder Hilfe brauche. :) Danke schon mal! Zusammenfassung: Neustart nach dem Kopieren dem iobroker_data Ordner und ein / hinter den Adminzugang.
  • MQTT-Client verbinden mit MQTT-Server

    27
    2
    0 Votes
    27 Posts
    4k Views
    T
    @homoran sagte in MQTT-Client verbinden mit MQTT-Server: @tt-tom sagte in MQTT-Client verbinden mit MQTT-Server: also den Port auf 1884 stellen und Websocket aktivieren , funktioniert so nicht. bin da nich so sicher hast du den port bei beiden verändert? ja bei beiden aktiviert und 1884 eingestellt. könnte auch heißen dass du 1883 einstellen und bei nutzung von websockets trotzdrm 1884 aufrufen musst installiere grade den WebSocket-Adapter, der hat als Standardport 8084 zu stehen. Edit: bekomme Websocket auf dem Hauptsystem nicht zum laufen. Ohne WebSocket läuft es ja. danke nochmal.
  • 0 Votes
    4 Posts
    529 Views
    AcguaA
    @feuersturm Super, vielen Dank. Auch für den Tipp bezüglich Skripte.

454

Online

32.9k

Users

83.0k

Topics

1.3m

Posts