Skip to content

Off Topic

Hier kann über alles geredet werden was sonst nirgendwo hinpasst
3.1k Themen 48.4k Beiträge

NEWS

Unterkategorien


  • 84 Themen
    2k Beiträge
    JackDanielJ
    danke, hat geklappt :) jackdaniel@NUC:~$ sudo apt update && sudo apt full-upgrade Hit:1 https://repos.influxdata.com/debian stable InRelease Hit:2 https://deb.debian.org/debian trixie InRelease Get:3 https://security.debian.org/debian-security trixie-security InRelease [43.4 kB] Hit:4 https://deb.debian.org/debian trixie-updates InRelease Hit:5 https://downloads.plex.tv/repo/deb public InRelease Hit:6 https://repo.homebridge.io stable InRelease Hit:7 https://deb.nodesource.com/node_22.x nodistro InRelease Fetched 43.4 kB in 0s (153 kB/s) All packages are up to date. Warning: https://downloads.plex.tv/repo/deb/dists/public/InRelease: Policy will reject signature within a year, see --audit for details Warning: https://deb.nodesource.com/node_22.x/dists/nodistro/InRelease: Policy will reject signature within a year, see --audit for details Summary: Upgrading: 0, Installing: 0, Removing: 0, Not Upgrading: 0 jackdaniel@NUC:~$
  • 252 4k
    252 Themen
    4k Beiträge
    M
    Geht doch [image: 1762540898822-84da7797-1785-45e9-883a-033f360580a6-image.png]
  • 138 3k
    138 Themen
    3k Beiträge
    wendy2702W
    Hier der select: [image: 1763974938404-d341299e-411b-46b2-a0e2-6bc05024e30e-grafik.png] Dieser Eintrag im log mit dem Limit etc. kommt übrigens nur für dieses eine Objekt: influxdb.0 2025-11-24 09:56:22.842 debug Removed Alias: modbus.4.holdingRegisters.4.588_battery_capacity !-> Battery Capacity influxdb.0 2025-11-24 09:56:13.123 debug Send: 43 of: 44 in: 16ms influxdb.0 2025-11-24 09:56:13.109 debug Query to execute: SELECT value from "Battery Capacity" WHERE time <= '2025-11-23T23:00:00.000Z' ORDER BY time DESC LIMIT 1;SELECT * from "Battery Capacity" WHERE time > '2025-11-23T23:00:00.000Z' AND time < '2025-11-24T08:57:00.000Z' ORDER BY time DESC LIMIT 500;SELECT value from "Battery Capacity" WHERE time >= '2025-11-24T08:57:00.000Z' LIMIT 1 influxdb.0 2025-11-24 09:56:13.107 debug modbus.4.holdingRegisters.4.588_battery_capacity17639745731070.9087331471236297 getHistory message: {"id":"modbus.4.holdingRegisters.4.588_battery_capacity","options":{"instance":"influxdb.0","start":1763938800000,"end":1763974620000,"from":true,"ack":true,"q":true,"addId":false,"aggregate":"none","returnNewestEntries":true,"user":"system.user.admin"}} influxdb.0 2025-11-24 09:56:13.107 debug Incoming message getHistory from system.adapter.admin.0 influxdb.0 2025-11-24 09:56:13.080 debug Send: 500 of: 500 in: 154ms influxdb.0 2025-11-24 09:56:12.929 debug Query to execute: SELECT value from "Battery Capacity" WHERE time <= '1999-12-31T23:00:00.000Z' ORDER BY time DESC LIMIT 1;SELECT * from "Battery Capacity" WHERE time > '1999-12-31T23:00:00.000Z' AND time < '2025-11-24T08:56:13.795Z' ORDER BY time ASC LIMIT 500;SELECT value from "Battery Capacity" WHERE time >= '2025-11-24T08:56:13.795Z' LIMIT 1 influxdb.0 2025-11-24 09:56:12.926 debug modbus.4.holdingRegisters.4.588_battery_capacity17639745729260.9845860834479072 getHistory message: {"id":"modbus.4.holdingRegisters.4.588_battery_capacity","options":{"instance":"influxdb.0","start":946681200000,"end":1763974573795,"limit":1,"from":false,"ack":false,"q":false,"addId":false,"aggregate":"none","user":"system.user.admin"}} influxdb.0 2025-11-24 09:56:12.926 debug Incoming message getHistory from system.adapter.admin.0 influxdb.0 2025-11-24 09:56:12.845 debug Incoming message features from system.adapter.admin.0 influxdb.0 2025-11-24 09:55:40.273 debug Send: 43 of: 44 in: 15ms influxdb.0 2025-11-24 09:55:40.259 debug Query to execute: SELECT value from "Battery Capacity" WHERE time <= '2025-11-23T23:00:00.000Z' ORDER BY time DESC LIMIT 1;SELECT * from "Battery Capacity" WHERE time > '2025-11-23T23:00:00.000Z' AND time < '2025-11-24T08:56:00.000Z' ORDER BY time DESC LIMIT 500;SELECT value from "Battery Capacity" WHERE time >= '2025-11-24T08:56:00.000Z' LIMIT 1 influxdb.0 2025-11-24 09:55:40.258 debug modbus.4.holdingRegisters.4.588_battery_capacity17639745402580.19325231080612948 getHistory message: {"id":"modbus.4.holdingRegisters.4.588_battery_capacity","options":{"instance":"influxdb.0","start":1763938800000,"end":1763974560000,"from":true,"ack":true,"q":true,"addId":false,"aggregate":"none","returnNewestEntries":true,"user":"system.user.admin"}} influxdb.0 2025-11-24 09:55:40.257 debug Incoming message getHistory from system.adapter.admin.0 influxdb.0 2025-11-24 09:54:40.259 debug Send: 42 of: 43 in: 17ms influxdb.0 2025-11-24 09:54:40.243 debug Query to execute: SELECT value from "Battery Capacity" WHERE time <= '2025-11-23T23:00:00.000Z' ORDER BY time DESC LIMIT 1;SELECT * from "Battery Capacity" WHERE time > '2025-11-23T23:00:00.000Z' AND time < '2025-11-24T08:55:00.000Z' ORDER BY time DESC LIMIT 500;SELECT value from "Battery Capacity" WHERE time >= '2025-11-24T08:55:00.000Z' LIMIT 1 influxdb.0 2025-11-24 09:54:40.242 debug modbus.4.holdingRegisters.4.588_battery_capacity17639744802420.4969135714440529 getHistory message: {"id":"modbus.4.holdingRegisters.4.588_battery_capacity","options":{"instance":"influxdb.0","start":1763938800000,"end":1763974500000,"from":true,"ack":true,"q":true,"addId":false,"aggregate":"none","returnNewestEntries":true,"user":"system.user.admin"}} influxdb.0 2025-11-24 09:54:40.242 debug Incoming message getHistory from system.adapter.admin.0 influxdb.0 2025-11-24 09:53:40.673 debug Send: 42 of: 43 in: 21ms influxdb.0 2025-11-24 09:53:40.653 debug Query to execute: SELECT value from "Battery Capacity" WHERE time <= '2025-11-23T23:00:00.000Z' ORDER BY time DESC LIMIT 1;SELECT * from "Battery Capacity" WHERE time > '2025-11-23T23:00:00.000Z' AND time < '2025-11-24T08:54:00.000Z' ORDER BY time DESC LIMIT 500;SELECT value from "Battery Capacity" WHERE time >= '2025-11-24T08:54:00.000Z' LIMIT 1 influxdb.0 2025-11-24 09:53:40.652 debug modbus.4.holdingRegisters.4.588_battery_capacity17639744206520.6842324958529225 getHistory message: {"id":"modbus.4.holdingRegisters.4.588_battery_capacity","options":{"instance":"influxdb.0","start":1763938800000,"end":1763974440000,"from":true,"ack":true,"q":true,"addId":false,"aggregate":"none","returnNewestEntries":true,"user":"system.user.admin"}} influxdb.0 2025-11-24 09:53:40.652 debug Incoming message getHistory from system.adapter.admin.0 influxdb.0 2025-11-24 09:52:41.288 debug Send: 42 of: 43 in: 14ms influxdb.0 2025-11-24 09:52:41.275 debug Query to execute: SELECT value from "Battery Capacity" WHERE time <= '2025-11-23T23:00:00.000Z' ORDER BY time DESC LIMIT 1;SELECT * from "Battery Capacity" WHERE time > '2025-11-23T23:00:00.000Z' AND time < '2025-11-24T08:53:00.000Z' ORDER BY time DESC LIMIT 500;SELECT value from "Battery Capacity" WHERE time >= '2025-11-24T08:53:00.000Z' LIMIT 1 influxdb.0 2025-11-24 09:52:41.274 debug modbus.4.holdingRegisters.4.588_battery_capacity17639743612740.973533320590052 getHistory message: {"id":"modbus.4.holdingRegisters.4.588_battery_capacity","options":{"instance":"influxdb.0","start":1763938800000,"end":1763974380000,"from":true,"ack":true,"q":true,"addId":false,"aggregate":"none","returnNewestEntries":true,"user":"system.user.admin"}} influxdb.0 2025-11-24 09:52:41.274 debug Incoming message getHistory from system.adapter.admin.0 influxdb.0 2025-11-24 09:51:41.462 debug Send: 42 of: 43 in: 11ms influxdb.0 2025-11-24 09:51:41.452 debug Query to execute: SELECT value from "Battery Capacity" WHERE time <= '2025-11-23T23:00:00.000Z' ORDER BY time DESC LIMIT 1;SELECT * from "Battery Capacity" WHERE time > '2025-11-23T23:00:00.000Z' AND time < '2025-11-24T08:52:00.000Z' ORDER BY time DESC LIMIT 500;SELECT value from "Battery Capacity" WHERE time >= '2025-11-24T08:52:00.000Z' LIMIT 1 influxdb.0 2025-11-24 09:51:41.451 debug modbus.4.holdingRegisters.4.588_battery_capacity17639743014510.3997624257885206 getHistory message: {"id":"modbus.4.holdingRegisters.4.588_battery_capacity","options":{"instance":"influxdb.0","start":1763938800000,"end":1763974320000,"from":true,"ack":true,"q":true,"addId":false,"aggregate":"none","returnNewestEntries":true,"user":"system.user.admin"}} influxdb.0 2025-11-24 09:51:41.451 debug Incoming message getHistory from system.adapter.admin.0 influxdb.0 2025-11-24 09:51:41.413 debug Send: 500 of: 500 in: 88ms influxdb.0 2025-11-24 09:51:41.326 debug Query to execute: SELECT value from "Battery Capacity" WHERE time <= '1999-12-31T23:00:00.000Z' ORDER BY time DESC LIMIT 1;SELECT * from "Battery Capacity" WHERE time > '1999-12-31T23:00:00.000Z' AND time < '2025-11-24T08:51:42.188Z' ORDER BY time ASC LIMIT 500;SELECT value from "Battery Capacity" WHERE time >= '2025-11-24T08:51:42.188Z' LIMIT 1 influxdb.0 2025-11-24 09:51:41.325 debug modbus.4.holdingRegisters.4.588_battery_capacity17639743013250.9753410809096223 getHistory message: {"id":"modbus.4.holdingRegisters.4.588_battery_capacity","options":{"instance":"influxdb.0","start":946681200000,"end":1763974302188,"limit":1,"from":false,"ack":false,"q":false,"addId":false,"aggregate":"none","user":"system.user.admin"}} influxdb.0 2025-11-24 09:51:41.325 debug Incoming message getHistory from system.adapter.admin.0 influxdb.0 2025-11-24 09:51:41.252 debug Incoming message features from system.adapter.admin.0 influxdb.0 2025-11-24 09:51:04.621 debug Send: 44 of: 43 in: 366ms influxdb.0 2025-11-24 09:51:04.261 debug Query to execute: SELECT value from "Battery Capacity" WHERE time <= '2025-11-23T23:00:00.000Z' ORDER BY time DESC LIMIT 1;SELECT * from "Battery Capacity" WHERE time > '2025-11-23T23:00:00.000Z' AND time < '2025-11-24T08:52:00.000Z' ORDER BY time ASC;SELECT value from "Battery Capacity" WHERE time >= '2025-11-24T08:52:00.000Z' LIMIT 1 influxdb.0 2025-11-24 09:51:04.255 debug modbus.4.holdingRegisters.4.588_battery_capacity17639742642550.8420108482029569 getHistory message: {"id":"modbus.4.holdingRegisters.4.588_battery_capacity","options":{"instance":"influxdb.0","start":1763938800000,"end":1763974320000,"from":false,"ack":false,"q":false,"addId":false,"aggregate":"minmax","returnNewestEntries":true,"user":"system.user.admin"}} influxdb.0 2025-11-24 09:51:04.249 debug Incoming message getHistory from system.adapter.admin.0
  • 259 Themen
    4k Beiträge
    WalW
    @Basti97 , ich nutze die schon seit Jahren.
  • 178 5k
    178 Themen
    5k Beiträge
    G
    @arteck said in Backup wird auf andere Nummer zurückgespielt: @guitardoc meine Frage brauchst nicht bantworten.. jo Oops, sorry, das hatte ich ganz übersehen... Hmm, ich kann auch nicht mehr sagen, wie ich es zurückgespielt hab. Vermutlich hab ich das genommen, wo ich zuerst gesehen hab, dass es das Backup ist was ich brauche... Interessant, dass es da Unterschiede gibt. Aber bei näherer Betrachtung macht das schon Sinn - wenn man aus dem LXC rückspielt, dann weiß er ja wohin, während von der Backupplatte kann es sonst wohin gehen. Ich vermute daher, dass ich es von der Backupplatte genommen hab, und dann hat er den ersten freien Slot vorgeschlagen, der ihm untergekommen ist (das war die 100). Und da die 101 möglicherweise auch noch lief, ließ sich die 101 auch nicht mehr für die Herstellung auswählen. Wieder was gelernt!
  • Fragen zu Docker-Installationen

    15 191
    15 Themen
    191 Beiträge
    Marc BergM
    @mkiobroker sagte in Update von 6.3.5 auf 7.7.2: Ich möchte meinen ioBroker von einem Server auf einen anderen Server umziehen. Auf beiden läuft Ubuntu 20.04 Warum startest du auf dem "neuen" Server gleich mit einem alten Betriebsssystem? Auf dem alten ist installiert 6.3.5 und auf dem neuen läuft 7.7.2. Das sind die Admin Versionen, entscheidend für das Backup / Restore ist die Version des js-controllers. Dann hab ich versucht den alten Server zu updaten (ich dachte, dass das backupit 2.x nicht kompatibel mit der 3.x Version ist), in dem ich den Container und das Image gelöscht habe und dann anschließend den obenstehenden Einzeiler ausgeführt. Image wurde neu geladen und beim Start war auch von den neuen Versionen die Rede. Leider wurde aber immer noch die Version 6.3.5 angezeigt. Klar, das Update des Images ändert nichts an den installierten Versionen unter "iobrokerdata". Was kann ich noch machen - oder muss ich echt alles per Hand übertragen? Siehe oben, die js-controller-Versionen müssen übereinstimmen. Also entweder den alten Server up- oder den neuen Server downgraden. Das geht (wenn nicht zu viele Äonen dazwischen liegen).
  • 31 346
    31 Themen
    346 Beiträge
    B
    @Beggall Über simpleAPI und socket.io kein Problem
  • Erweiterung der Anlage von 1p auf 3p - passt das?

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    262 Aufrufe
    HomoranH
    @stefan-falt sagte in Erweiterung der Anlage von 1p auf 3p - passt das?: Reicht es wenn ich mit 50mm² verkable? Victron schreibt 70 mm² vor
  • UniFi Network Application 8.3.x -> NAT deaktivieren

    unifi ubiquiti nat
    10
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    Samson71S
    @ilovegym "etwas" übertrieben trifft es vermutlich :grinning: [image: 1729933859153-37232481-e5a7-491e-91f6-5c6a6ed7187c-image.png]
  • Erfahrungen zu tibber und Hardware-Voraussetzungen

    16
    0 Stimmen
    16 Beiträge
    2k Aufrufe
    HomoranH
    @xxjooo sagte in Erfahrungen zu tibber und Hardware-Voraussetzungen: Wir sind mit einem Haus mit 4 Leuten in der Mitte zwischen K und BN immer bei deutlich über 5.000kWh/Jahr. nicht weit davon etwas nördlich Mit unseren beiden Töchtern lagen wir damals bei 14.000kWh/anno. Warmwasser und Kochen über Strom. und geduscht wurde bis die Sicherung ausstieg. (ok, diverse große Warmwasseraquarien, ein Blechpool und ein HomeOffice waren auch noch dabei.) inzwischen lagen wir bei etwa 5.000, als dann die Stromppreise 2022 stiegen, nochmal radikal gesenkt auf etwa 3500netto. Netto deswegen, weil dann die Wärmepumpe und das eAuto kamen. liegen jetzt wieder zwischen 6000 und 6500 Verbrauch und dank Solar und Batterie bei irgendwas um 3500 Bezug
  • zigbee2MQTT server + Lidl Fluter HG08010 (Geräte Bug?)

    4
    1
    0 Stimmen
    4 Beiträge
    203 Aufrufe
    MartinPM
    @arteck Sie melden sich ja ... nur, wenn man sie nicht lange genug vom Netz trennt mit dem falschen Zustand ... Ist eben Discounterware ;-) Jetzt noch mal das Logging mit nur kurzem simulierten Netzausfall (Schalte vorher kurz An und wieder Aus) 2024-10-23 14:33:32z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Lidl Fluter', payload '{"brightness":254,"color":{"x":0.3131,"y":0.3232},"color_mode":"color_temp","color_power_on_behavior":"initial","color_temp":153,"last_seen":"2024-10-23T14:33:32+02:00","linkquality":184,"state":"OFF"}' info 2024-10-23 14:33:32z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Lidl Fluter', payload '{"brightness":254,"color":{"x":0.3131,"y":0.3232},"color_mode":"color_temp","color_power_on_behavior":"initial","color_temp":153,"last_seen":"2024-10-23T14:33:32+02:00","linkquality":184,"state":"ON"}' info 2024-10-23 14:33:33z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Lidl Fluter', payload '{"brightness":254,"color":{"x":0.3131,"y":0.3232},"color_mode":"color_temp","color_power_on_behavior":"initial","color_temp":153,"last_seen":"2024-10-23T14:33:33+02:00","linkquality":183,"state":"ON"}' info 2024-10-23 14:33:33z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Lidl Fluter', payload '{"brightness":254,"color":{"x":0.3131,"y":0.3232},"color_mode":"color_temp","color_power_on_behavior":"initial","color_temp":153,"last_seen":"2024-10-23T14:33:33+02:00","linkquality":183,"state":"OFF"}' info 2024-10-23 14:33:54z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Lidl Fluter', payload '{"brightness":254,"color":{"x":0.3131,"y":0.3232},"color_mode":"color_temp","color_power_on_behavior":"initial","color_temp":153,"last_seen":"2024-10-23T14:33:54+02:00","linkquality":171,"state":"OFF"}' Die Lampe ist "ON" (!), aber state wird nach "Besaften" mit "OFF" (!) gemeldet ... Ändert sich auf in den ersten 2 Minuten nach dem Einschalten der Netzversorgung der Lampe nicht ... Es gibt also eine Meldung beim Einschalten, die ist aber falsch...
  • komme nicht mehr in den Unifi-Controller

    20
    0 Stimmen
    20 Beiträge
    877 Aufrufe
    NegaleinN
    @meister-mopper sagte in komme nicht mehr in den Unifi-Controller: Schau doch mal nach, ob man es von der cli anschieben kann. gefunden: (https://community.ui.com/questions/UniFi-How-do-I-reset-the-UAP-to-factory-default-settings/39013761-714c-4e1a-a428-aa56e1b99f40) :)
  • Bekomme mount nicht in fsfab

    7
    0 Stimmen
    7 Beiträge
    322 Aufrufe
    CodierknechtC
    @david-g Habe auch lange daran rumgedoktert und bin zu folgender Lösung gekommen: //192.168.178.5/Docker /mnt/nas cifs x-systemd.automount,x-systemd.requires=network-online.target,file_mode=0666,dir_mode=0777,credentials=/etc/smbcredentials 0 0
  • COMET DECT Thermostat retten

    13
    1
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    BananaJoeB
    @martinp sagte in COMET DECT Thermostat retten: @bananajoe Da muss man aufpassen, dass man die Dämmung mit einer Sperrbahn gegen den Raum abdichtet, sonst kriecht die Feuchtigkeit in die Dämmung und kondensiert dann durch das Wärmegefälle nach außen am Taupunkt ... öhm, jupp. Folie/Dampfsperre ist da auch hinter
  • Shelly BLU USB Gateway als Beacon? suche USB Beacon

    4
    0 Stimmen
    4 Beiträge
    329 Aufrufe
    D
    @schmello said in Shelly BLU USB Gateway als Beacon? suche USB Beacon: @dieter_p Muss ich in der App vom Feasycom Stick noch etwas Einstellen? Aktuell läuft soweit ich weiß die feasycom app nicht auf meinem Pixel mit Android 14 bzw. hab schon was länger nicht mehr versucht, von daher alles ausm Gedächtnis. Läuft aber hab keinen Beacon am Mann zum testen. Ich glaube, "irgendwas" war in den beacons die ich gekauft hab bereits konfiguriert und ob das in deinem Stick genauso ist, nicht zu sagen. In jeden Fall würde ich es prüfen, aus Sicherheitsgründen und auch weil es Sinn macht und du dort Sendeintervalle etc ganz genau einstellen kannst. Ebenso unterstützen die Beacons von feasycom verschiedene Typen (ibeacon, Eddystone etc etc.) die dort angelegt werden können. Ungenutztes würde ich sowieso löschen. Ich verwende derzeit noch ESPHome und hab noch nicht Tasmota mit BLE Scanner in Betrieb genommen. Prinzipell das Ganze über iBeacon konfiguriert und ich prüfe mit dem Scanner auf die MAC-Adresse des Beacon. Ablesbar auch mit der feasycom app wenn ein iBeacon konfiguriert ist. Unter Tasmota sehe ich keinen Grund warum es nicht dort genauso gehen sollte. Ein Eindruck zur App, kannst Du hier bekommen: https://www.youtube.com/watch?v=4r0E7_mBHVQ
  • Wie mittels LUXTRONIK-Adapter Wassertemperatur einstellen?

    5
    3
    0 Stimmen
    5 Beiträge
    519 Aufrufe
    stolly82S
    Hey zusammen, ich habe ein Skript geschrieben, das die Steuerung der Wassertemperatur über MyUplink ermöglicht, da die Luxtronik Weboberfläche (ab Version 3.89.4) keine direkte Option dazu bietet. Der Plan ist, daraus später einen richtigen Adapter zu machen, aber hier ist schon einmal die Skriptversion zum Ausprobieren. Was macht das Skript? Die Luxtronik ab Version 3.89.4 kann MyUplink integrieren, und genau das nutzt dieses Skript aus. Das Skript erlaubt es euch, die Heizung und das Warmwasser über die MyUplink-Cloud zu steuern, und stellt alle Informationen zur Verfügung, die dort abgerufen werden können. Das bedeutet, ihr könnt die Temperatur direkt anpassen, ohne die Einschränkungen der normalen Weboberfläche. Mehr Informationen zu MyUplink findet ihr hier: MyUplink Cloud – Alpha Innotec So probiert ihr das Skript aus: Öffnet den IoBroker > JavaScript Adapter > Neu > JavaScript > Hinzufügen. Fügt das Skript ein. Tragt eure MyUplink-Zugangsdaten ein. Startet das Skript – und schon seid ihr einsatzbereit! Funktionsumfang Heizung & Warmwasser: Ihr könnt die gewünschten Temperaturen einstellen. Informationsabruf: Alle relevanten Daten, die MyUplink zur Verfügung stellt, werden abgerufen und angezeigt. Falls ihr das Skript ausprobiert, würde ich mich sehr über euer Feedback freuen. Viel Spaß damit! // Konfigurationseinstellungen const CONFIG = { email: 'EMAIL@MYMAIL.DE', password: 'GEHEIM', clientId: 'My-Uplink-iOS', clientSecret: '992EFE7C-9CDC-435B-8BA3-2EF8E81BEF14', interval: 30000, // Standardintervall in Millisekunden für wiederkehrende Abfragen intervalFunctions: [ 'getWeatherTileData', 'getAndCreateMenu' ] }; const axios = require('axios'); class MyUplinkAdapter { constructor() { this.token = null; this.userData = {}; // Hier werden die Benutzerdaten gespeichert this.devices = {}; // Hier werden die Gerätedaten gespeichert this.groups = []; // Hier werden die Gruppendaten gespeichert this.failedRequests = []; // Warteschlange für fehlgeschlagene Anfragen log('Konstruktor von MyUplinkAdapter wurde aufgerufen!', 'info'); // Initialisieren des Verbindungsstatus setObject('myUplink.info.connection', { type: 'state', common: { name: 'API-Verbindungsstatus', type: 'boolean', role: 'indicator.connected', read: true, write: false }, native: {} }); setState('myUplink.info.connection', { val: false, ack: true }); } // Authentifizierungsmethode authenticate() { log("Starte Authentifizierung...", 'info'); log(`Authentifizierungsparameter: email=${CONFIG.email}, clientId=${CONFIG.clientId}`, 'debug'); return axios.post('https://internalapi.myuplink.com/v2/users/validate', { email: CONFIG.email, password: CONFIG.password }, { headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Accept-Language': 'de-DE' } }) .then(response => { log("Benutzer validiert. Antwort: " + JSON.stringify(response.data), 'debug'); const validationData = response.data; if (validationData.id) { this.userData = validationData; // Speichert die Benutzerdaten log(`Authentifizierung erfolgreich. Benutzer-ID: ${validationData.id}`, 'info'); setState('myUplink.info.connection', { val: true, ack: true }); // Verbindung erfolgreich return this.getAccessToken(validationData.id); } else { log("Fehlende ID im Validierungsschritt. Antwort: " + JSON.stringify(validationData), 'error'); throw new Error('User validation failed: Missing ID'); } }) .catch(error => { this.handleError(error); setState('myUplink.info.connection', { val: false, ack: true }); // Verbindung fehlgeschlagen throw error; }); } // Methode zum Abrufen des Access Tokens getAccessToken(userId) { log("Abrufen des Access Tokens...", 'info'); log(`Tokenparameter: clientId=${CONFIG.clientId}, userId=${userId}`, 'debug'); return axios.post('https://internalapi.myuplink.com/oauth/token', `password=${encodeURIComponent(CONFIG.password)}&client_secret=${CONFIG.clientSecret}&grant_type=password&client_id=${CONFIG.clientId}&username=${encodeURIComponent(CONFIG.email)}`, { headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8', 'Authorization': `Bearer ${userId}` } } ) .then(response => { log("Token erfolgreich erhalten. Antwort: " + JSON.stringify(response.data), 'debug'); const tokenData = response.data; if (tokenData.access_token) { this.token = tokenData.access_token; log(`Access-Token erfolgreich gespeichert.`, 'info'); return tokenData; } else { log("Fehlender Access-Token in der Antwort: " + JSON.stringify(tokenData), 'error'); throw new Error('Access token not received'); } }) .catch(error => { this.handleError(error); throw error; }); } // Methode zum Speichern der Benutzerdaten saveUserData() { return this.ensureTokenIsValid().then(() => { log("Speichern der Benutzerdaten...", 'info'); const userUrl = 'https://internalapi.myuplink.com/v2/users/me'; log(`Anfrage-URL für Benutzerdaten: ${userUrl}`, 'debug'); return axios.get(userUrl, { headers: { 'Authorization': `Bearer ${this.token}`, 'Accept': 'application/json' } }) .then(response => { log("Benutzerdaten erfolgreich abgerufen. Antwort: " + JSON.stringify(response.data), 'debug'); this.userData = response.data; // Dynamische Erstellung der Datenpunkte in myUplink.users und Setzen der Werte Object.keys(this.userData).forEach(key => { if (typeof this.userData[key] === 'object' && this.userData[key] !== null) { Object.keys(this.userData[key]).forEach(subKey => { const stateId = `myUplink.User.${key}.${subKey}`; setObject(stateId, { type: 'state', common: { name: `${key} ${subKey}`, type: typeof this.userData[key][subKey], read: true, write: false } }); setState(stateId, { val: this.userData[key][subKey], ack: true }); }); } else { const stateId = `myUplink.User.${key}`; setObject(stateId, { type: 'state', common: { name: key, type: typeof this.userData[key], read: true, write: false } }); setState(stateId, { val: this.userData[key], ack: true }); } }); return this.userData; }) .catch(error => { this.handleError(error); throw error; }); }); } // Methode für das Abrufen der Wetterdaten getWeatherTileData() { return this.ensureTokenIsValid().then(() => { const group = this.groups.find(g => g.id); // Nimmt die erste gültige Gruppe aus den gespeicherten Gruppendaten if (!group || !group.id) { log('Keine gültige Group ID gefunden.', 'error'); throw new Error('No valid Group ID found.'); } const groupId = group.id; const fetchWeatherData = () => { log("Abrufen der Wetterdaten...", 'info'); const weatherUrl = `https://internalapi.myuplink.com/v2/groups/${groupId}/weather-tile-data`; log(`Anfrage-URL für Wetterdaten: ${weatherUrl}`, 'debug'); return axios.get(weatherUrl, { headers: { 'Authorization': `Bearer ${this.token}`, 'Accept': 'application/json' } }) .then(response => { log("Wetterdaten erfolgreich abgerufen. Antwort: " + JSON.stringify(response.data), 'debug'); const weatherData = response.data; // Dynamische Erstellung der Datenpunkte in myUplink.Weather und Setzen der Werte const basePath = `myUplink`; Object.keys(weatherData).forEach(key => { if (typeof weatherData[key] === 'object' && weatherData[key] !== null) { if (Array.isArray(weatherData[key])) { weatherData[key].forEach((item, index) => { Object.keys(item).forEach(subKey => { const stateId = `${basePath}.Weather.${key}[${index}].${subKey}`; setObject(stateId, { type: 'state', common: { name: `${key} ${subKey}`, type: typeof item[subKey], read: true, write: false } }); setState(stateId, { val: item[subKey], ack: true }); }); }); } else { Object.keys(weatherData[key]).forEach(subKey => { const stateId = `${basePath}.Weather.${key}.${subKey}`; setObject(stateId, { type: 'state', common: { name: `${key} ${subKey}`, type: typeof weatherData[key][subKey], read: true, write: false } }); setState(stateId, { val: weatherData[key][subKey], ack: true }); }); } } else { const stateId = `${basePath}.Weather.${key}`; setObject(stateId, { type: 'state', common: { name: key, type: typeof weatherData[key], read: true, write: false } }); setState(stateId, { val: weatherData[key], ack: true }); } }); return weatherData; }) .catch(error => { this.handleError(error, fetchWeatherData); }); }; // Erstmaliger Aufruf und Intervall einrichten fetchWeatherData(); setInterval(fetchWeatherData, CONFIG.interval); }); } // Methode zum Sicherstellen, dass der Token noch gültig ist ensureTokenIsValid() { if (!this.token) { log("Token ist nicht vorhanden oder ungültig. Hole neuen Token...", 'warn'); return this.authenticate(); } return Promise.resolve(); } // Methode zum Abrufen der Gruppendaten getGroups() { return this.ensureTokenIsValid().then(() => { log("Abrufen der Gruppendaten...", 'info'); const groupsUrl = 'https://internalapi.myuplink.com/v2/groups/me'; log(`Anfrage-URL für Gruppendaten: ${groupsUrl}`, 'debug'); return axios.get(groupsUrl, { headers: { 'Authorization': `Bearer ${this.token}`, 'Accept': 'application/json' } }) .then(response => { log("Gruppendaten erfolgreich abgerufen. Antwort: " + JSON.stringify(response.data), 'debug'); this.groups = response.data.groups || []; // Speichert die Gruppendaten this.devices = this.groups.flatMap(group => group.devices) || []; // Speichert die Gerätedaten this.createObjectsFromGroupsAndDevices(); return this.groups; }) .catch(error => { this.handleError(error); throw error; }); }); } // Methode zum Erstellen der Baumstruktur in myUplink createObjectsFromGroupsAndDevices() { log("Erstelle Objekte für Gruppen und Geräte...", 'info'); this.groups.forEach(group => { const groupId = group.id; group.devices.forEach(device => { const deviceId = device.id; const groupPath = `myUplink.System.${groupId}.${deviceId}`; // Erstellt das Geräteobjekt innerhalb der Gruppe setObject(groupPath, { type: 'device', common: { name: device.name || 'Unbenanntes Gerät', desc: device.description || '' }, native: device }); }); }); log("Objekterstellung abgeschlossen.", 'info'); } // Methode zum Abrufen der Menüstruktur async getAndCreateMenu(menuId = 0, basePath = `myUplink`) { try { const device = this.groups.flatMap(group => group.devices).find(device => device.id); if (!device || !device.id) { log('Keine gültige Device ID gefunden.', 'error'); throw new Error('No valid Device ID found.'); } const menuUrl = `https://internalapi.myuplink.com/v3/devices/${device.id}/menu/${menuId}`; const response = await axios.get(menuUrl, { headers: { 'Authorization': `Bearer ${this.token}`, 'Accept': 'application/json' } }); const menuData = response.data; if (menuData.rows && menuData.rows.length > 0) { for (const row of menuData.rows) { let name = row.text?.text || `Menü_${row.id}`; name = this.normalizeName(name); // Normalisieren von Umlauten const path = `${basePath}.${name}`; // Falls es ein weiterer Menü-Link ist, rufe das nächste Menü ab if (row.type === 'uilink') { setObject(path, { type: 'channel', common: { name: name, desc: `Menü ID: ${row.id}` }, native: row }); await this.getAndCreateMenu(row.id, path); } // Falls es ein Parameter ist, erstelle das Parameter-Objekt if (row.type === 'uiinfoparameter' || row.type === 'uinumerical' || row.type === 'uidropdown' || row.type === 'uiboolean') { this.createParameterObject(path, row); } } } } catch (error) { this.handleError(error); } } // Methode zum Erstellen eines Parameter-Objekts createParameterObject(path, parameter) { const parameterName = parameter.text?.text || `Parameter_${parameter.parameterId}`; let value = parameter.value?.integerValue ?? parameter.value?.stringValue ?? null; let adjustedValue = value; // Divisor anwenden, falls vorhanden und nur auf den Wert im Objekt selbst if (parameter.metadata?.divisor) { if (typeof value === 'number') { adjustedValue = value / parameter.metadata.divisor; } } // Wert als Text anzeigen, falls enumValues vorhanden sind const states = {}; if (parameter.metadata?.enumValues && parameter.metadata.enumValues.length > 0) { parameter.metadata.enumValues.forEach(ev => { states[ev.value] = ev.text; }); adjustedValue = value; } // Setze den Objekt-Typ je nach Parameter-Typ const commonType = parameter.metadata?.variableType?.toLowerCase() || 'mixed'; const role = parameter.type === 'uiboolean' ? 'switch' : 'text'; setObject(path, { type: 'state', common: { name: parameterName, type: commonType, unit: parameter.metadata?.unit || '', read: true, write: parameter.metadata?.isWritable || false, role: role, states: Object.keys(states).length > 0 ? states : undefined, min: parameter.metadata?.minValue && parameter.metadata.minValue !== 0 ? parameter.metadata.minValue / (parameter.metadata.divisor || 1) : undefined, max: parameter.metadata?.maxValue && parameter.metadata.maxValue !== 0 ? parameter.metadata.maxValue / (parameter.metadata.divisor || 1) : undefined, step: parameter.metadata?.change ? parameter.metadata.change / (parameter.metadata.divisor || 1) : undefined }, native: parameter }); // Setze den Wert des Parameters als Zahl oder Enum-Wert setState(path, { val: typeof adjustedValue === 'number' ? adjustedValue : value, ack: true }); // Lausche auf Änderungen des Werts, um die PUT-Anfrage zu senden if (parameter.metadata?.isWritable) { on({id: path, change: 'ne'}, (obj) => { // 'ne' bedeutet, nur nicht bestätigte Änderungen lauschen if (obj.state.ack) { return; // Wenn die Änderung von der API bestätigt wurde, ignoriere sie } let newValue = obj.state.val; const divisor = parameter.metadata?.divisor || 1; const minValue = typeof parameter.metadata?.minValue !== 'undefined' && parameter.metadata.minValue !== 0 ? parameter.metadata.minValue / divisor : undefined; const maxValue = typeof parameter.metadata?.maxValue !== 'undefined' && parameter.metadata.maxValue !== 0 ? parameter.metadata.maxValue / divisor : undefined; const change = parameter.metadata?.change ? parameter.metadata.change / divisor : undefined; // Werte begrenzen und anpassen if (typeof minValue !== 'undefined' && newValue < minValue) { newValue = minValue; } if (typeof maxValue !== 'undefined' && newValue > maxValue) { newValue = maxValue; } if (typeof change !== 'undefined') { newValue = Math.round(newValue / change) * change; } const adjustedValueForPut = newValue * divisor; let currentPath = path; let menuId = null; while (!menuId && currentPath.includes('.')) { currentPath = currentPath.substring(0, currentPath.lastIndexOf('.')); const currentObject = getObject(currentPath); if (currentObject?.native?.id) { menuId = currentObject.native.id; } } if (menuId) { this.updateParameterValue(menuId, parameter.parameterId, adjustedValueForPut, parameter.metadata?.unit || '', path, newValue); } else { log(`Fehler: Menü-ID für Pfad ${path} nicht gefunden.`, 'error'); } }); } } // Methode zum Normalisieren von Umlauten normalizeName(name) { return name .replace(/ä/g, 'ae') .replace(/ö/g, 'oe') .replace(/ü/g, 'ue') .replace(/ß/g, 'ss') .replace(/[^a-zA-Z0-9]/g, '_'); } // Methode zur Aktualisierung der Parameterwerte (PUT-Call) updateParameterValue(menuId, parameterId, value, unit = "", path, newValue) { const device = this.groups.flatMap(group => group.devices).find(device => device.id); if (!device || !device.id) { log('Keine gültige Device ID gefunden.', 'error'); throw new Error('No valid Device ID found.'); } const updateUrl = `https://internalapi.myuplink.com/v2/devices/${device.id}/menu/${menuId}/rawpoints/${parameterId}`; log(`Sende PUT-Anfrage an URL: ${updateUrl} mit Wert: ${value} und Einheit: ${unit}`, 'info'); return axios.put(updateUrl, { value: value, unit: unit }, { headers: { 'Authorization': `Bearer ${this.token}`, 'Content-Type': 'application/json' } }) .then(response => { log(`Parameter erfolgreich aktualisiert: ${JSON.stringify(response.data)}`, 'debug'); setState(path, { val: newValue, ack: true }); // Bestätigt den Wert im Objekt }) .catch(error => { this.handleError(error, () => this.updateParameterValue(menuId, parameterId, value, unit, path, newValue)); }); } // Fehlerbehandlungs-Methode handleError(error, retryCallback = null) { if (error.response) { log('Fehler-Antwortdaten: ' + JSON.stringify(error.response.data, null, 2), 'error'); log('HTTP-Statuscode: ' + error.response.status, 'error'); if (error.response.status === 401) { log('Token abgelaufen, erneuere den Token...', 'warn'); this.authenticate().then(() => { if (retryCallback) { retryCallback(); } }); } } setState('myUplink.info.connection', { val: false, ack: true }); // Verbindung fehlgeschlagen } } // Beispiel für die Verwendung der MyUplinkAdapter-Klasse (alle Logs als Fehler oder Warnungen) log("Starte die Authentifizierung...", 'info'); const adapter = new MyUplinkAdapter(); adapter.authenticate() .then(() => adapter.getGroups()) .then(groups => { log("Gruppendaten empfangen: " + JSON.stringify(groups), 'debug'); log("Gerätedaten empfangen: " + JSON.stringify(adapter.devices), 'debug'); return adapter.saveUserData(); }) .then(userData => { log("Benutzerdaten gespeichert: " + JSON.stringify(userData), 'info'); return adapter.getWeatherTileData(); }) .then(weatherData => { log("Wetterdaten empfangen: " + JSON.stringify(weatherData), 'info'); }) .then(() => adapter.getAndCreateMenu()) .then(() => { log('Menüstruktur erfolgreich erstellt.', 'info'); }) .then(() => { // Dynamisches Registrieren der Intervall-Funktionen CONFIG.intervalFunctions.forEach(funcName => { if (typeof adapter[funcName] === 'function') { setInterval(() => { adapter[funcName](); }, CONFIG.interval); log(`${funcName} wurde als Intervallfunktion registriert.`, 'info'); } else { log(`Funktion ${funcName} existiert nicht im Adapter.`, 'error'); } }); }) .catch(err => { log('Allgemeiner Fehler: ' + (err.message || "Keine Fehlermeldung verfügbar"), 'error'); }); log("Ende des Skripts erreicht.", 'info');
  • Partitionsgröße automatisch erweitern deaktivieren

    Verschoben
    16
    0 Stimmen
    16 Beiträge
    775 Aufrufe
    mickymM
    Nun @ro75 sagte in Partitionsgröße automatisch erweitern deaktivieren: Für was diesen Murks? Nun ich versteh das schon - ich habe meine Partition auch minimal verkleinert, damit die images auf unterschiedliche Fabrikate von SD Karten passen. Installiere Dir parted und resize2fs. Mit parted verkleinere die Partition, anschließend das Dateisystem mit resize2fs anpassen.
  • Yahka Thermostat mit Temperatursensor u. Steckdose erstellen

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    219 Aufrufe
    paul53P
    @dody0007 sagte: Die Steckdose soll dann einschalten und wenn die Zieltemp. erreicht ist, wieder ausschalten. Dafür benötigst du einen eigenen Datenpunkt für den Sollwert und einen Zweipunkt-Regler (Skript).
  • Empfehlung 19" Server gesucht

    30
    0 Stimmen
    30 Beiträge
    2k Aufrufe
    BananaJoeB
    @negalein sagte in Empfehlung 19" Server gesucht: War nur so ein Gedankt, da ich die sehr günstig bekommen hätte. naja, deshalb liegt mein Kauf hier ja auch rum, schön billig sind die ja. Ich habe diese Erfahrung also auch mit Geld erkauft. Ich hatte den in der Testumgebung in der Firma im Einsatz, da ist der Stromverbrauch "egal" bzw. fallen ein paar hundert Watt mehr oder weniger schlicht nicht auf.
  • HM-IP Heizkörperthermostat-Display sehr blass / schwach

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    417 Aufrufe
    Samson71S
    @timmss sagte in HM-IP Heizkörperthermostat-Display sehr blass / schwach: @samson71 Das könnte sein ja, wobei die frisch angebaut sind und vor nichtmal einem Jahr bestellt :( Dann wäre ja noch Garantie drauf. Sollte sich der Blickwinkel nicht als Grund zeigen, dann würde ich das direkt reklamieren.
  • Samsung Tab A8 - Akku

    7
    1
    0 Stimmen
    7 Beiträge
    331 Aufrufe
    NegaleinN
    @samson71 sagte in Samsung Tab A8 - Akku: Die Netzteile meiner 4 Wandtablets werden von Schaltaktoren ein- und ausgeschaltet Hätte ich vor. Muss aber erst Platz finden. Wird wohl hinter dem Tablet eine tiefe UP werden.
  • Roborock S7 einen bestimmten Raum Reinigung anstarten

    1
    0 Stimmen
    1 Beiträge
    146 Aufrufe
    Niemand hat geantwortet
  • Gesperrter Thread: "Linux bändigen"

    29
    0 Stimmen
    29 Beiträge
    1k Aufrufe
    K
    @oliverio Bei den Ubuntuusers schaue ich auch zuerst nach, wenn ich mal eine Linux-Frage habe. Dort wird meist sehr gut erklärt - auch anhand von Beispielen. Hat mir i.a. besser geholfen als manpage.
  • Linux-Tipps: USB-Serial und ESP-Programmierung

    2
    2
    1 Stimmen
    2 Beiträge
    349 Aufrufe
    MartinPM
    Hier noch als Nachtrag eine "sinnvolle" Anwendung von cu, wenn das (fast) fertig programmierte ESP-Device in der Nähe des Proxmox Servers steht. Dann kann man für Feinschliff schön mitlesen, was passiert. USB-Device zu einem "Spiel" Debian--LXC durchreichen, und Kontrollausgaben des ESP32 anzeigen lassen (kommen alle 10 Sekunden) martin@DebianTest:~$ cu -s 115200 -l /dev/ttyACM0 Connected. Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.87 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.69 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.81 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.81 21.87 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.87 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.87 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.54 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.24 24.69 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.54 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.24 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.54 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.24 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.54 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.24 24.75 21.87 SollT 18.70 WiFi 1 MQTT 1 ok
  • Kaco Powador mit RS485 zu MQTT

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    227 Aufrufe
    Samson71S
    @hanshiasl sagte in Kaco Powador mit RS485 zu MQTT: Ich beziehe mich hier auf einen älteren Thread: Mir ist sehr wohl bewusst worauf sich das bezieht. Trotzdem kann niemand helfen ohne dedizierte Infos. Insofern ändert das nichts an meiner Antwort. Ich meinte natürlich Screenshots vom entsprechenden ioBroker-Adapter, da ich annahm dass es um ein MQTT-Problem im Zusammenhang mit ioBroker geht. Im Moment schwant mir aber, dass Du ioBroker überhaupt nicht nutzt. Dann hat das hier auch nichts in der Rubrik "ioBroker Allgemein" zu suchen, sondern gehört nach "Off Topic", weil es eben kein ioBroker-Problem ist, bzw. mit diesem nichts zu tun hat. Da helfen dann vermutlich auch weder Log-Einträge von Mosquitto noch vom speziellen Raspi. Der angesprochene User hat auch exakt nur diesen einen Beitrag überhaupt geschrieben und war seit mehr als anderthalb Jahren nicht mehr online. Von daher würde ich mir da eher keine großen Hoffnungen machen.
  • [Gelöst] Problem mit WLAN-Mesh-Netzwerk (Fritzboxen)

    11
    0 Stimmen
    11 Beiträge
    870 Aufrufe
    H
    @hans_999 said in Problem mit Mesh-Netzwerk (Fritzboxen): Irgendwie schaut es aus, als ob da ein Filter in der Meshverbindung zuschlägt. Aber ich habe nichts in der FB gefunden, was hier falsch parametriert sein könnte. Hat jemand eine Idee, wo ich suchen könnte oder gar Lösung? Mittlerweile hatte ich die Muße einmal die Einstellungen in der FB durchzuprobieren. Den beschriebenen Effekt konnte ich mit folgender Einstellung an der 1. Fritzbox (Master Master) "wegbekommen" WLAN - Sicherheit - Verschlüsselung - Aktive WLAN-Geräte dürfen untereinander kommunizieren erlauben Das gefällt mir zwar nicht so ganz, denn damit kann jedes mobile Gerät im Netz auf die anderen mobilen Geräte zugreifen. Aber im Nachgang klingt es logisch: Die Meshverbindung bindet ein WLAN-Gerät (Mesh-Partner) ein und dem Smartphone wird der Zugriff auf den Mesh-Partner nicht erlaubt. Aber über LAN gab es diese Einschränkung nicht.
  • Ubuntu 24.04 LTS

    11
    1 Stimmen
    11 Beiträge
    1k Aufrufe
    NegaleinN
    @lobomau sagte in Ubuntu 24.04 LTS: das LXC-Backup bringt dich doch genau dahin wo du vorher warst, also zum Ubuntu 22.04. dachte ich mir. ioB ist kein Problem. Bei einigen muss ich erst forschen, wie da ein Backup&Restore möglich ist.

778

Online

32.4k

Benutzer

81.5k

Themen

1.3m

Beiträge