Skip to content

Off Topic

Hier kann über alles geredet werden was sonst nirgendwo hinpasst
3.2k Topics 49.8k Posts

NEWS

Subcategories


  • 91 Topics
    2k Posts
    HomoranH
    @hotspot_2 sagte in Upgrade von Debian 12 'Bookworm' auf Debian 13 'Trixie': Wollte mal nachfragen ob da Handlungsbedarf besteht. ja! https://forum.iobroker.net/post/1324258
  • 256 4k
    256 Topics
    4k Posts
    marcel-drzalM
    habe es gefunden, hatte in Grafana *3.6 nicht als Punkt geschrieben sondern als komma
  • 147 3k
    147 Topics
    3k Posts
    OliverIOO
    @Rushmed also jetzt habe ich dir den Fehler erklärt, auf die Datei gezeigt und noch die Dokumentation verlinkt in dem es deutlich drin steht... und du vermutest den Fehler immer noch wo anders? ps: oder an andere? habe ich mich undeutlich ausgedrückt?
  • Fragen und Hilfe zur externen SQL Datenbank

    1 5
    1 Topics
    5 Posts
    fuzzy1955F
    Teil 5: Verwenden der SQL-Daten in Diagrammen bzw. im VIS-2 Der Hauptzweck der Datenhistorisierung liegt natürlich in der grafischen bzw. tabellarischen Darstellung, um daraus mögliche Entscheidungen abzuleiten, etwa wo setzte ich beim Börsenstrompreis mein Bezugslimit. Eine einfache Möglichkeit zur grafischen Darstellung bieten die DIAGRAMME. Man wählt als Datenquellen die gewünschten SQL-Historisierungspunkte, stellt noch ein paar Dinge ein und … fertig. [image: 1770367644381-664a0f95-2fc3-48ae-babe-1a8ffafab1ad-image.png] Um das Ganze im VIS-2 anzuzeigen, nimmt man dort das Widget „Basic -IFrame“ und gibt bei Allgemein – Quelle den Link aus den Diagrammen an. [image: 1770367662940-281a33d1-fcdc-49bb-a3d9-c0fb7ea8ecd1-image.png] So kann man sich ein VIS-2-View nur für Diagramme bauen, bei der die gewünschte Art des Diagrammes angetippt wird: [image: 1770367682322-9328d9e4-3448-4e5a-8c92-8eeec3f2b52c-image.png] Die tabellarischen Darstellung im VIS-2 geschieht mit dem Widget „Basic Table“, bei dem man einen separaten Datenpunkt (Table Object ID) mit JSON-Daten befüllt. Dieses Beispiel zeigt Tages-, Monats- und Jahreswerte einer Strombilanz untereinander. [image: 1770367711812-00a9e22f-d74a-43e7-982f-0e35c37db84a-image.png] Die Datenpunkte dazu: { "alias.0.Diagrammdaten.StrombilanzJahre": { "common": { "name": "StrombilanzJahre", "desc": "Manuell erzeugt", "role": "state", "type": "json", "read": true, "write": true, "alias": { "id": "javascript.0.variables.j006" } }, "type": "state", "native": {}, "_id": "alias.0.Diagrammdaten.StrombilanzJahre", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "val": "", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1768340995710, "ack": false }, "alias.0.Diagrammdaten.StrombilanzMonate": { "common": { "name": "StrombilanzMonate", "desc": "Manuell erzeugt", "role": "state", "type": "json", "read": true, "write": true, "alias": { "id": "javascript.0.variables.j005" } }, "type": "state", "native": {}, "_id": "alias.0.Diagrammdaten.StrombilanzMonate", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "val": "", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1768340995710, "ack": false }, "alias.0.Diagrammdaten.StrombilanzTage": { "common": { "name": "StrombilanzTage", "desc": "Manuell erzeugt", "role": "state", "type": "json", "read": true, "write": true, "alias": { "id": "javascript.0.variables.j004" } }, "type": "state", "native": {}, "_id": "alias.0.Diagrammdaten.StrombilanzTage", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "val": "", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1768340995710, "ack": false } } Mit einem Javascript werden die Datenpunkte zeitgesteuert befüllt. strSQL = "SELECT DATE_FORMAT (tag, '%Y-%m-%d') AS Tag, " + "ROUND(SUM(pv) / 1000.0,1) AS PV, " + "ROUND(AVG(akku)) AS Hausakku, " + "ROUND(SUM(haus) / 1000.0,1) AS Haus, " + "ROUND(SUM(eauto) / 1000.0,1) AS eAuto, " + "ROUND(SUM(gen) / 1000.0,1) AS Gen, " + "ROUND(SUM(nots) / 1000.0,1) AS Nots, " + "ROUND(SUM(gesamt) / 1000.0,1) AS gesamt, " + "ROUND(COUNT(autark)) AS autark " + "FROM iobroker.tagesstatistik " + "GROUP BY DATE_FORMAT (tag, '%Y-%m-%d') " + "ORDER BY DATE_FORMAT (tag, '%Y-%m-%d') desc;"; sendTo('sql.0', 'query', strSQL, function (result) { if (result.error) { console.error(result.error); } else { MyTrigger (idStrombilanzTage,JSON.stringify(result.result)); } }); --------------------------- Voila , das war die ganze Zauberei --------------------------- Anregungen, Fragen etc. bitte hier anhängen.
  • 271 Topics
    5k Posts
    P
    @Marc-Berg Ich habe den Datenpunkt zumm Schluß auch noch einmal so angelegt, wie du es beschrieben hat. Hat danach aber trotzdem nicht funktioniert Da ich ja dann auch den Datenpunkt mqtt.1.cmnd.tasmota_E5A25D.POWER1 hatte und ich zwischenzeitlich auch den Tasmota neu gestartet hatte, wurde mir automatisch wieder der Datenpunkt mqtt.1.cmnd.tasmota_E5A25D.POWER angelegt Ich hab es dann einfach wieder getestet und schau es funktionierte wieder Ich habs daran getestet, weil ich den POWER3 ja noch nicht eingebunden hatte ging dieser auch noch nicht über die Weboberfläche Dann habe ich den Datenpunkt mqtt.1.cmnd.tasmota_E5A25D.POWER3 erstellt und dann ging auch Schalter3 wieder Das muss echt keiner verstehen, weil, ich diese 3 Datenpunkte nicht von Hand angelegt habe, aber egal, es funktionniert wieder und das ist wichtig Vielen Dank für deine Hilfe und Bemühungen VG Thomas
  • 187 5k
    187 Topics
    5k Posts
    David G.D
    @Negalein Dann sollte es besser ganz getrennt voneinander laufen. Wäre ja doof, wenn bei A alles runter fährt wenn nur bei B die Sicherung fliegt.
  • Fragen zu Docker-Installationen

    20 245
    20 Topics
    245 Posts
    Q
    @steff2108 Ich habe ein ähnliches Setup wie du. iobroker läuft bei mir im Docker Container (macvlan) auf meiner DS1821+. Als Backup System habe ich eine DS423+ am Laufen. Meine komplette Docker Umgebung habe ich per Portainer Stacks (Compose) eingerichtet. Die persistenten Container Daten repliziere ich einmal täglich per Synology Snapshot Replication auf die DS423+ Sollte meine primäre DS1821+ ausfallen, brauche ich auf der DS423+ nur die Container zu starten und es läuft wieder alles... Beste Grüße
  • 48 592
    48 Topics
    592 Posts
    liv-in-skyL
    Mein persönliches KI-Archiv — Self-Hosted Ich habe mir eine eigene Wissensdatenbank gebaut die ich per KI durchsuchen kann. Alles läuft bei mir zuhause auf einem Server. Programmiert mit Claude und die Anweisungen befolgt :-) Was kann das System? Ich kann Texte, Webseiten und Dateien in das Archiv speichern — und später per Suche wiederfinden. Die Suche ist "intelligent": sie versteht den Sinn einer Frage, nicht nur einzelne Wörter. Wer nach "Nudelgericht" sucht, findet auch "Spaghetti carbonara". Links ohne Auth werden gelesen und der Inhalt auch abgelegt. Das selbe passiert auch mit PDF Files - dadurch wird auch deren Inhalt gefunden. Jeder Eintrag bekommt eine Kategorie (Rezepte, ioBroker, Allgemein usw.) und eine eigene Seite die ich direkt im Browser aufrufen kann. Botti (OpenClaw) hilft mit Mein KI-Assistent Botti ist direkt angebunden. Ich schreibe ihm einfach: `ARCH: text Unsere Backup strategie für deinen Server ARCH: link https://... — er schickt die Seite ins Archiv ARCH: suche Backup-Strategie — er sucht und antwortet Das funktioniert auch per Telegram. Botti fragt vor dem Speichern kurz nach und schickt mir danach den direkten Link zum gespeicherten Eintrag. Komponente Technologie Datenbank PostgreSQL 15 + pgvector Embeddings Ollama + nomic-embed-text (768 Dimensionen) Webserver Node.js + Express Workflows n8n (self-hosted) Frontend Vanilla HTML/CSS/JS KI-Agent OpenClaw (Botti) Vektorindex HNSW + IVFFlat ! Worauf läuft es: PostgreSQL-Container — Datenbank mit pgvector-Erweiterung für Vektor-Embeddings, Node.js Webserver n8n-Container — Workflow-Automatisierung für Upload, Scraping und Indexierung Ollama-Server — Lokales KI-Modell nomic-embed-text für die Embedding-Generierung OpenClaw-eigenes Gerät — KI-Agenten-Management, hier läuft Botti [image: 1771785155382-image-22-02-19-30-13.png] [image: 1771785169772-image-22-02-19-31-33.png] [image: 1771785181015-image-22-02-19-29-33.png]
  • Sicherheit Smarthome

    sicherheit smarthome
    5
    0 Votes
    5 Posts
    901 Views
    OpenSourceNomadO
    @Markus84 said in Sicherheit Smarthome: Hat hier noch jemand andere Empfehlungen? Als Open Source Fetischist würde ich zu etwas wie OPNsense oder IPFire tendieren. Was die Hardware angeht bis du dann auch flexibel. Läuft teilweise auch auf schon auf ultra-lowcost (&low power) arm soc's wie z.B. einen raspberry (besser jedoch gleich in ein Gerät mit mehr als einem gigabit port investieren - dann hat man später, wenn das Neulandzeitalter mal da ist, nicht gleich ein bottle-neck ;) ). Im kuketz-blog gibt es u.a. sehr verständliche Anleitungen für IPFire
  • Suche Gerätefirmware >1.0 für HM-Sec-SD Rauchmeld

    firmware homematic
    11
    0 Votes
    11 Posts
    1k Views
    HomoranH
    Hat sich anscheinend doch noch etwas geändert im Procedere. Die HmIP-Firmware musste ich im PopUp anklicken - herunterladen und auf die CCU bringen, danach sah es dann so aus: [image: 1580050921786-hmip_upgrade.png] Also auch bei HmIP und (piV)CCU2 ein manueller Vorgang. Bleibt zu hoffen, dass entsprechende HM-Firmware auf dem selben Weg zur Verfügung gestellt wird. Dann wird auch auf der EQ-3 Seite unter Downloads keine Datei mehr benötigt
  • SmartHome Treffen Nordwest

    usertreffen nordwest stammtisch
    14
    1 Votes
    14 Posts
    1k Views
    PowerPanP
    WOW mehr kann ich nicht sagen. Als ich die Idee zu dem Treffen hatte habe ich mit Max 15 Teilnehmern gerechnet und nun waren es über 50 Ein DANKE an alle die da waren Wir machen weiter und zwar am 26.03.2020 um ca 18 Uhr Alle Details im Pad wie gehabt https://pad.mainframe.io/p/SmartHomeTreffenMaerz20 Und auf der Mailingliste https://mailman.kreativitaet-trifft-technik.de/listinfo/hausautomation
  • [gelöst] Verständnisfrage wLan Steckdosen

    4
    0 Votes
    4 Posts
    369 Views
    -Alex- 0-
    @Asgothian @SBorg vielen Dank für eurere schnelle und ausführlichen Erläuterung zu dieser Thematik. Jetzt bin ich wieder ein wenig schlauer. Werde mich dann mal in die Thematik der Controller Standards einarbeiten und mal schauen was sich da ergibt und was Sinn macht. Danke euch!
  • Zwei Zigbee Gateways im selben Netzwerk?

    3
    0 Votes
    3 Posts
    6k Views
    J
    Schade! Aber Danke.
  • Schalter-Serie für Neubau

    schalter steckdosen neubau
    16
    0 Votes
    16 Posts
    2k Views
    OpenSourceNomadO
    Ich habe im Neubau die DS102-3 (gibt's auch in -2, -1 Ausführung): [image: 1576943528519-img_20191221_175026.jpg] Ich habe darauf esphome laufen. Riesen vorteil ist, selbst wenn die ganze Steuerzentrale abraucht oder das Wlan gejammt wird (z.B mittels deauth), das Teil funktioniert trotzdem (analog natürlich). Wermutstropfen: Wenn der Strom weg ist, gibt's natürlich nix zu schalten 🙄 Zusätzlich kann ich damit jede weiteren erdenklichen Sachen steuern und das zuhauf (einfach klick, doppel klick, dreifach klick, x Sekunden gedrückt halten, usw.). Außerdem ist es natürlich auch möglich beliebige Status mittels der Leds anzeigen zu lassen und/oder diese als Schalterbeleuchtung/Nachtlicht zu verwenden. Also ist das Teil sogesehen natürlich deutlich mehr als 'nur' ein primitiver Lichtschalter (ist sowieso ein Taster ;) ). Ich verbaue auch immer gleich die 3-fach Edition (3 Schalter, 3 Relais, 4 Leds), auch wenn ich nur eines zum schalten in der Dose brauche. Einfach genial alle möglichen Steuermöglichkeiten nur einen Fingertipp entfernt zu haben. 😉 Falls du das fertige template für esphome brauchst, findest du es hier.
  • Was kann Kodi eigentlich alles?

    Moved kodi fire tv iobroker
    10
    0 Votes
    10 Posts
    2k Views
    MicM
    Ich nutze Kodi ausschließlich als Client für IPTV (Tvheadend), es läuft bei mir zuverlässig auf einem Philips TV als App. Siehe auch hier: https://forum.iobroker.net/post/200465
  • Weis einer was mit frankjoke los ist?

    vermisst
    1
    0 Votes
    1 Posts
    182 Views
    No one has replied
  • Absolute Anfängerfragen - Grundidee

    22
    0 Votes
    22 Posts
    2k Views
    4
    Dank euch für eure Rückmeldung! Ich werde mich jetzt mal damit beschäftigen und komme wieder auf euch und dieses klasse Forum zurück wenn ich weitere Hilfe benötige. Tausend dank!
  • Statusdisplay - McLighting vs. Tasmota Son. Basic

    13
    0 Votes
    13 Posts
    2k Views
    G
    Hier mal quick&dirty: Gebaut hab ich das wie der gute Dennis es hier beschreibt: https://www.youtube.com/watch?v=gN2gJ3IYXpo&t=491s Da ich aber kein Blockly Freund bin, hab ich ein Javascript entwickelt, welches per HTTP Request, die LEDs setzt. Paar Infos dazu: Ich setze sehr stark auf den LinkedDevices Adapter und schreibe dort den Datenpunkt "open" für die Türkontaktsensoren entsprechend um: false=geschlossen, true=offen. Die Datenpunkte existierten bereits und ich wollte hierfür keine neuen anlegen. In ObjektLEDs wird die Zuordnung des Datenpunktes auf die LED definiert. Mit den Variablen Doors,BoolDevicesTrueRED,BoolDevicesTrueGreen und Lights definiert man, wie sich die LED verhalten soll. Für die Mülltonnen hab ich eine Sonderbehandlung, da ich mein Mülltonnenscript nicht komplett umbauen wollte. Hier mein Script: /* BEI TASMOTA BEGINNT DIE ZÄHLUNG BEI 1 !!! LED 29: Wohnzimmer linke Tür LED 18: Kai Türe LED 17: Gästezimmer Türe LED 6: Altpapaier LED 5: linke Waschmaschine LED 28: Wohnzimmer rechte Tür LED 19: Kai Fenster LED 16: Gästezimmer Fenster LED 7: Biomüll LED 4: rechte Waschmaschine LED 27: Küche Fenster LED 20: Lea Türe LED 15: Büro Fenster LED 8: Restmüll LED 3: Trockner LED 26: WC Fenster LED 21: Bad Fenster LED 14: Klimagerät LED 9: Wertstoffe LED 2: Geschirrspüler LED 25: Waschküche Fenster LED 22: Schlafzimmer Fenster LED 13: Entertainment LED 10: LED 1: LED 24: Keller Fenster LED 23: Garagentor LED 12: LED 11: LED 0: Gäste WLAN */ // Lichtfarbendefinition //Originale Farbwerte: //var ColorOK = "10FF00"; //Grün //var ColorWarning = "ffcb05"; //Orange bis Gelb //var ColorError = "ff0000"; //Rot //diese waren zu hell, durch Konvertierung auf HSL, dimmen auf ide Hälfte (L = 25%) und zurück nach RGB, ergibt: var ColorOK = "043800"; //Grün var ColorWarning = "806600"; //Orange bis Gelb var ColorError = "800000"; //Rot //Gerätedefinition var DisplayIP = "10.1.24.105"; var ObjektLEDs = [ //BEI TASMOTA BEGINNT DIE ZÄHLUNG BEI 1 !!! { Objekt: 'linkeddevices.0.Livingroom.wlanGuest', LED: '01' }, { Objekt: '', LED: '02' }, { Objekt: 'linkeddevices.0.Kitchen.DisherStatusBinaer', LED: '03' }, { Objekt: 'linkeddevices.0.Washroom.DryerStatusBinaer', LED: '04' }, { Objekt: 'linkeddevices.0.Washroom.WasherRightStatusBinaer', LED: '05' }, { Objekt: 'linkeddevices.0.Washroom.WasherLeftStatusBinaer', LED: '06' }, { Objekt: 'Altpapier', LED: '07' }, //Altpapier { Objekt: 'BioMuell', LED: '08' }, //Biomüll { Objekt: 'RestMuell', LED: '09' }, //Restmüll { Objekt: 'Wertstoffe', LED: '10' }, //Wertstoffe { Objekt: '', LED: '11' }, { Objekt: '', LED: '12' }, { Objekt: '', LED: '13' }, { Objekt: 'linkeddevices.0.Livingroom.ENTERTAINMENTstate', LED: '14' }, { Objekt: 'linkeddevices.0.Office.KLIMAGERAETstate', LED: '15' }, { Objekt: '', LED: '16' }, { Objekt: '', LED: '17' }, { Objekt: 'linkeddevices.0.Guests.DoorOpened', LED: '18' }, { Objekt: 'linkeddevices.0.Kai.DoorOpened', LED: '19' }, { Objekt: 'linkeddevices.0.Kai.WindowOpened', LED: '20' }, { Objekt: 'linkeddevices.0.Lea.DoorOpened', LED: '21' }, { Objekt: 'linkeddevices.0.Bath.WindowOpened', LED: '22' }, { Objekt: 'linkeddevices.0.Sleepingroom.opened', LED: '23' }, { Objekt: 'linkeddevices.0.Garage.opened', LED: '24' }, { Objekt: 'linkeddevices.0.Cellar.WindowOpened', LED: '25' }, { Objekt: 'linkeddevices.0.Washroom.WindowOpened', LED: '26' }, { Objekt: 'linkeddevices.0.WC.WindowOpened', LED: '27' }, { Objekt: 'linkeddevices.0.Kitchen.opened', LED: '28' }, { Objekt: 'linkeddevices.0.Livingroom.DoorRightOpened', LED: '29' }, { Objekt: 'linkeddevices.0.Livingroom.DoorLeftOpened', LED: '30' } ]; //Türen und Fenster var Doors = ['linkeddevices.0.Livingroom.DoorLeftOpened','linkeddevices.0.Livingroom.DoorRightOpened','linkeddevices.0.Garage.opened','linkeddevices.0.Bath.WindowOpened', 'linkeddevices.0.Kitchen.opened','linkeddevices.0.Sleepingroom.opened','linkeddevices.0.Kai.DoorOpened','linkeddevices.0.Kai.WindowOpened','linkeddevices.0.Lea.DoorOpened', 'linkeddevices.0.Cellar.WindowOpened','linkeddevices.0.Washroom.WindowOpened','linkeddevices.0.WC.WindowOpened','linkeddevices.0.Guests.DoorOpened']; var BoolDevicesTrueRED = ['linkeddevices.0.Office.KLIMAGERAETstate','linkeddevices.0.Livingroom.ENTERTAINMENTstate','linkeddevices.0.Livingroom.wlanGuest', 'linkeddevices.0.Washroom.DryerStatusBinaer','linkeddevices.0.Washroom.WasherLeftStatusBinaer','linkeddevices.0.Washroom.WasherRightStatusBinaer','linkeddevices.0.Kitchen.DisherStatusBinaer']; //LED ist rot, wenn der Status dieses Gerätes TRUE ist var BoolDevicesTrueGreen = []; //LED ist grün, wenn der Status dieses Gerätes TRUE ist var Lights = []; //LED ist gelb, wenn die Lampe an ist, ansonsten aus // ----------------------------------------- function wait(ms){ var start = new Date().getTime(); var end = start; while(end < start + ms) { end = new Date().getTime(); } } function RunRequest(URL){ try { require("request")(URL).on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } console.log("Statusdisplay Request: " + URL); } // --- Funktion für Einzelledsteuerung ---------------------------------------------------------- function SwitchLED (LEDNo, ColorCode) { if (getState('sonoff.0.Statusdisplay.POWER').val) { RunRequest("http://"+DisplayIP+"/cm?cmnd=Led"+LEDNo+"%20"+ColorCode); } } function GetLedNo (DeviceTriggerName){ //log ("Dev: " + DeviceTriggerName); for (var ObjektLED in ObjektLEDs) { //ObjektLED enthält nur eine Nummer und nicht das Element //log ("Name: " + ObjektLEDs[ObjektLED].Objekt); if (ObjektLEDs[ObjektLED].Objekt == DeviceTriggerName) { return (ObjektLEDs[ObjektLED].LED); } } } function SetBoolDevicesTrueRED (DeviceTriggerName, DeviceTriggerValue) { if (DeviceTriggerValue == "true" || DeviceTriggerValue == "1" || DeviceTriggerValue == "läuft" ) { SwitchLED (GetLedNo(DeviceTriggerName),ColorError); } else { SwitchLED (GetLedNo(DeviceTriggerName),ColorOK); } } function SetBoolDevicesTrueGreen (DeviceTriggerName, DeviceTriggerValue) { if (DeviceTriggerValue == "true" || DeviceTriggerValue == "1") { SwitchLED (GetLedNo(DeviceTriggerName),ColorOK); } else { SwitchLED (GetLedNo(DeviceTriggerName),ColorError); } } function SetDoorsLED (DeviceTriggerName, DeviceTriggerValue) { if (DeviceTriggerValue == "geschlossen") { SwitchLED (GetLedNo(DeviceTriggerName),ColorOK); } else { SwitchLED (GetLedNo(DeviceTriggerName),ColorError); } } function SetLightsLED (DeviceTriggerName, DeviceTriggerValue) { if (DeviceTriggerValue) { SwitchLED (GetLedNo(DeviceTriggerName),ColorWarning); } else { SwitchLED (GetLedNo(DeviceTriggerName),"000000"); } } function SetMuelltonnenLights(){ function SwitchGarbageLEDs(GarbageName,Days){ if (Days == 0) { SwitchLED (GetLedNo(GarbageName),ColorError); } else if (Days == 1) { SwitchLED (GetLedNo(GarbageName),ColorWarning); } else { SwitchLED (GetLedNo(GarbageName),ColorOK); } } var RestMuellResttage = getState('Datenpunkte.0.Wertstoffe.Restmüll_Resttage').val; var BioMuellResttage = getState('Datenpunkte.0.Wertstoffe.Bio_Resttage').val; var AltpapierResttage = getState('Datenpunkte.0.Wertstoffe.Papier_Resttage').val; var WertstoffeResttage = getState('Datenpunkte.0.Wertstoffe.Wertstoffe_Resttage').val; SwitchGarbageLEDs("BioMuell",BioMuellResttage); SwitchGarbageLEDs("RestMuell",RestMuellResttage); SwitchGarbageLEDs("Altpapier",AltpapierResttage); SwitchGarbageLEDs("Wertstoffe",WertstoffeResttage); } // --- globale Displayfunktionen ---------------------------------------------------------------- function ResetDisplay(){ setState('sonoff.0.StatusDisplay.Color','000000'); //setState('sonoff.0.StatusDisplay.POWER',false); //Power wird bei MQTT automatisch auf false gesetzt } function SwitchOffDisplayDelayed(){ //setStateDelayed('sonoff.0.Statusdisplay.POWER',false,(1000 * 60)); //Angabe in Millisekunden } function SwitchOnOffDisplay(PowerOn){ if (PowerOn) { RunRequest("http://"+DisplayIP+"/cm?cmnd=Power%20on"); log ("Status Display: Power On"); } else { RunRequest("http://"+DisplayIP+"/cm?cmnd=Power%20off"); log ("Status Display: Power Off"); } } function InitDisplay(){ log ("+++ Statusdisplay Init"); //Option20 setzen: LED: ermöglicht den Dimmwert zu verändern, ohne die Versorgung einzuschalten (default = 0 / off) RunRequest("http://"+DisplayIP+"/cm?cmnd=SetOption20%201"); RunRequest("http://"+DisplayIP+"/cm?cmnd=fade%200"); RunRequest("http://"+DisplayIP+"/cm?cmnd=scheme%200"); wait (1000); //Milliseconds //alle undefinierten LEDs löschen for (i = 0; i < 30; i++) { //console.log ("------------------------------------------------------------"); //console.log(ObjektLEDs[i].Objekt + ": " + ObjektLEDs[i].Objekt.length); if (ObjektLEDs[i].Objekt == '') { SwitchLED ((i+1),"000000"); wait (500); //Milliseconds } } if (Doors.length > 0) { Doors.forEach(function(element) { SetDoorsLED(element,getState(element).val); }); } if (BoolDevicesTrueRED.length > 0) { BoolDevicesTrueRED.forEach(function(element) { //var value = getState(element).val; //SetBoolDevicesTrueRED(element,value); SetBoolDevicesTrueRED(element,getState(element).val); }); } if (BoolDevicesTrueGreen.length > 0) { BoolDevicesTrueGreen.forEach(function(element) { SetBoolDevicesTrueGreen(element,getState(element).val); }); } if (Lights.length > 0) { Lights.forEach(function(element) { SetLightsLED(element,getState(element).val); }); } SetMuelltonnenLights(); } // --- MAIN --------------------------------------------------------------------------- on({id:'sonoff.0.Statusdisplay.POWER', change: 'ne'},(obj) => { var value = obj.state.val; log ("Statusdisplay - Power: " + value); if (value) { InitDisplay(); } }); on({id: Doors, change: 'ne'},(obj) => { //setState('sonoff.0.StatusDisplay.POWER',true) var value = obj.state.val; var objArr = obj.id.match(/(^.+)\.(.+)\.(.+)$/, ""); //Aufteilung in Pfad + Device + CMD //var DeviceID=objArr[1]+"."+objArr[2]; //var DeviceName=objArr[2]; /*console.log("Trigger: " + objArr[0]); console.log("Pfad: " + objArr[1]); console.log("Devic);name: " + objArr[2]); console.log("localDeviceID:"+DeviceID);*/ SetDoorsLED(objArr[0],value); SwitchOffDisplayDelayed(); }); on({id: BoolDevicesTrueRED, change: 'ne'},(obj) => { //setState('sonoff.0.StatusDisplay.POWER'/*Turn On/Off*/,true) var value = obj.state.val; var objArr = obj.id.match(/(^.+)\.(.+)\.(.+)$/, ""); //Aufteilung in Pfad + Device + CMD SetBoolDevicesTrueRED(objArr[0],value); SwitchOffDisplayDelayed(); }); on({id: BoolDevicesTrueGreen, change: 'ne'},(obj) => { //setState('sonoff.0.StatusDisplay.POWER'/*Turn On/Off*/,true) var value = obj.state.val; var objArr = obj.id.match(/(^.+)\.(.+)\.(.+)$/, ""); //Aufteilung in Pfad + Device + CMD SetBoolDevicesTrueGreen(objArr[0],value); SwitchOffDisplayDelayed(); }); on({id: Lights, change: 'ne'},(obj) => { //setState('sonoff.0.StatusDisplay.POWER'/*Turn On/Off*/,true) //InitDisplay(); var value = obj.state.val; var objArr = obj.id.match(/(^.+)\.(.+)\.(.+)$/, ""); //Aufteilung in Pfad + Device + CMD SetLightsLED(objArr[0],value); SwitchOffDisplayDelayed(); }); //-- Inits -- if (getState('linkeddevices.0.Diningroom.StatusdisplayPOWER').val == false) { //setState('linkeddevices.0.Diningroom.StatusdisplayPOWER',true); //Power True triggert "InitDisplay()" SwitchOnOffDisplay(true); } else { InitDisplay(); } //Display AN/AUS Steuerung on({id: 'javascript.0.Astro.Astrotag',val: true}, function(){ //Wenn es Tag wird Display anschalten if (getState('linkeddevices.0.Diningroom.StatusdisplayPOWER').val == false) { SwitchOnOffDisplay(true); } }) on({id: 'linkeddevices.0.Diningroom.CEILINGSWITCHSwitch', change: 'ne'}, function() { //Wenn es Nacht ist, wird das Display mit der Deckenlampe geschaltet if (getState('javascript.0.Astro.Astrotag').val == false) { SwitchOnOffDisplay(getState('linkeddevices.0.Diningroom.CEILINGSWITCHSwitch').val); } }) //schedule('0 6 * * *', function(){SwitchOnOffDisplay(true)}); schedule('55 22 * * *', function(){SwitchOnOffDisplay(false)}); //zur Sicherheit trotzdem um 23 Uhr ausschalten schedule('1 6 * * *', SetMuelltonnenLights);
  • Suche over-ear BT Kopfhörer mit ANC bis 100€

    1
    0 Votes
    1 Posts
    81 Views
    No one has replied
  • Raspberry Pi 4 und 22" Touchdisplay

    2
    0 Votes
    2 Posts
    642 Views
    E
    Guten Abend ich antwortet mir mal selber, denn ich habe nach 3h Recherche den passenden Hinweis gefunden: In der Datei /boot/cmdline.txt Den Eintrag: usbhid.mousepoll=0 Hinzufügen. Nun verhält sich der Touchmonitor so wie ich es von meinem Smartphone gewohnt bin.
  • 0 Votes
    2 Posts
    195 Views
    H
    @Sundance Kauf Dir einen richtigen Google Home, oder eine Alexa. Wenn ich zu Hause bin, liegt das Smartphone irgendwo und wird nur draufgeguckt, wenn es quietscht, weil wieder mal jemand einen WhatsApp geschickt hat.
  • Hue Emulator und HW Hue Bridge V2 kombinierbar?

    1
    0 Votes
    1 Posts
    139 Views
    No one has replied
  • Thread "Adapter - Parser" gesperrt - warum?

    1
    1
    0 Votes
    1 Posts
    183 Views
    No one has replied
  • Admin- oder auch Moderatoren-Team

    admin-team moderatoren-team entwickler-team
    3
    0 Votes
    3 Posts
    225 Views
    B
    Sorry... :innocent: Da habe ich nicht drauf geklickt :face_with_rolling_eyes: Danke für die Info :+1:
  • 0 Votes
    3 Posts
    169 Views
    B
    @Jey-Cee Danke für die Hilfe... War es zwar nicht ganz, aber ging in die Richtung. Habe jetzt nach langer Suche tatsächlich doch einen alten Favoriten gefunden. Meinte dieses Thema
  • Hikam A7 Stream Problem

    1
    0 Votes
    1 Posts
    287 Views
    No one has replied
  • PiHole

    15
    1
    0 Votes
    15 Posts
    1k Views
    A
    @crunchip jetzt läuft alles danke nochmal
  • [Gelöst] PiVPN+ NoIp + OpenVPN - Ich verzweifle

    2
    4
    0 Votes
    2 Posts
    408 Views
    S
    HAB DIE LÖSUNG !! Nachdem ich heute den GANZEN Tag damit verbracht habe zig verschiedene Möglichkeiten zu testen und nichts Erfolg hatte wusste ich zum Schluß, dass es einfach nicht an mir liegen kann. Es lag echt an Vodafone. Ich hatte bei dennen nur ein DSL Lite Tarif, das haben wohl alle "normalen" Kunden. Nur BusinessKunden haben einen echten Duplex Tarif und damit auch eine IPV4 Adresse. Der Kundendienst hat abe rkostenlos auf IPV4 bei mir umgestellt und nun hab ich auf Verbinden geklickt und alles hat funktioniert. Hoffe dieser Beitrag erspart euch etwas Ärger ich habe heute den ganzen Tag damit verloren -.-

689

Online

32.7k

Users

82.4k

Topics

1.3m

Posts