Beiträge von karoCB
-
-
-
-
-
Webbutton1 Zeile1<p>Zeile2
oder Devicename und Slider hier
-
Sieht so aus, als hättest du chatgpt um Rat gefragt.
- ja so war es, da ich in der Doku nicht die // gefunden hatte - war das ein Syntaxtest der schief ging ! - ich möchte den Pokal deshalb auch dringend zurückgeben!
-
Dein Berry-Skript für Tasmota sieht größtenteils korrekt aus, aber es gibt ein paar potenzielle Syntax- und Laufzeitfehler : ich bin im Berry nicht mit dabei, da zu komplex !
Mögliche Probleme:
Zuweisung von lastReceivedTime
- Das time()-Objekt gibt normalerweise eine Zahl (z. B. Unix-Zeit) zurück. Falls Tasmota eine andere Art von Zeitwert erwartet, könnte das problematisch sein. Prüfe, ob du besser time().toString() verwenden solltest.
JSON-Serialisierung von payload
Falls json.encode() nicht verfügbar ist oder eine Fehlermeldung wirft, prüfe, ob mqtt.publish() stattdessen eine Zeichenkette erwartet:
Datenzugriff in onLoRaReceive
CodeberryKopierenBearbeitenlastMessage = data["Data"] // Nachrichtinhalt lastRSSI = data["RSSI"] // Empfangsstärke
Falls data nicht garantiert ein Dictionary ist, könnte dies zu einem Fehler führen. Du kannst mit if "Data" in data absichern:
lastReceivedTime als Bedingung in if-Statements
- Falls lastReceivedTime eine Zahl ist (von time()), sollte die Bedingung if lastReceivedTime > 0 sein.
Überarbeitete Version:
Code
Alles anzeigenberryKopierenBearbeiten// Variablen zur Speicherung der letzten empfangenen Daten lastMessage = "" lastRSSI = 0 lastReceivedTime = 0 // Unix-Zeitwert als Zahl // Funktion, die bei Empfang einer LoRa-Nachricht aufgerufen wird def onLoRaReceive(event, data) { if event == "LORA_RECEIVE" and "Data" in data and "RSSI" in data { lastMessage = data["Data"] // Nachrichtinhalt lastRSSI = data["RSSI"] // Empfangsstärke lastReceivedTime = time() // Aktuelle Zeit speichern print("Neue Nachricht empfangen: " + lastMessage + " | RSSI: " + lastRSSI) // Nachricht per MQTT veröffentlichen sendLoRaDataMQTT() } } // Event-Handler für LoRa-Daten aktivieren event.on("LORA_RECEIVE", onLoRaReceive) // Funktion zur Veröffentlichung der LoRa-Daten über MQTT def sendLoRaDataMQTT() { if lastReceivedTime > 0 { topic = "tasmota/lora" payload = json.encode({ "message": lastMessage, "rssi": lastRSSI, "received_time": lastReceivedTime }) mqtt.publish(topic, payload, false) print("MQTT gesendet: " + payload) } } // Funktion zur Anzeige der letzten empfangenen Daten (manuelle Abfrage) def showLastLoRaData() { if lastReceivedTime > 0 { print("Letzte Nachricht: " + lastMessage) print("Empfangsstärke (RSSI): " + lastRSSI) print("Empfangen um: " + lastReceivedTime) } else { print("Noch keine Nachricht empfangen.") } } // Befehl hinzufügen, um die Daten manuell abzufragen command.add("lorainfo", showLastLoRaData)
Änderungen:
✅ Überprüfung von data vor dem Zugriff auf Data und RSSI
✅ Korrektur der lastReceivedTime-Bedingung (> 0 statt != "")
✅ Sichere JSON-Serialisierung vor mqtt.publish() -
hilfe auch hier RE: RESULT von WEBSEND auslesen (Webservice nutzen)
ZitatWas it der korrekte Ansatz das zu machen?
Es ist eine Release mit "Result" zu übersetzen oder zu benutzen - auch wichtig !
-
-
Hast du das Template Eightree 16A Plug (ET28) Configuration for Tasmota verwendet - aber das BLE-Bluetooth Modul mit geladen, dann wird diese Zeile ausgegeben.
1.) Neues Release ohne BLE laden über OTA ist der Weg.
a:) Information den Chip ESP32-C3 oder -S3 usw. sichten und den verfügbaren Speicher und durch eine Standardrelease ersetzen.
2. Ein Kommando in den Befehlen finden welches geht (setoption115 0 ist es nicht )
-
Interessante Idee - sicherlich anstrengend die richtige Größe zu sondieren um keinen Brand zu riskieren, da die Kapazitiven-Widerstandswerte der LED (internen Spannungswandler ) nicht bekannt sind.
Zudem ist das Problem vielschichtig, weil erst mit dem erreichen der Schwellspannung für den Spannungswandler der LED die Arbeit auf ihn wartet. Die Phasenverschiebung von Strom und Spannung wird das Kleben auslösen - wenn du NTCs da hast probieren und nach dem Dauerbetrieb die Wärmelast prüfen.
-
Danke - dann ist eine IR-Kopplung von einem Tasmota zur LED-Standardssteuerung für mich die richtige Lösung, wenn ich den Fall in absehbarer Zeit habe
-
das IR-Standardprogramm (z.B.wenn Musikbetrieb über Mikro) ist ja mit Tasmota futsch hast du dazu einen Softwarenachbau ?
-
Welche Idee hast du das Colorsystem mit Rule umzusetzen.
Das stelle ich mir mit Skript schon sehr anspruchsvoll vor, da die Chips auf dem LED-Kabel die richtigen Informieren bekommen müssen um ihr erfolgreiches Verhalten zu generieren
-
setoption36 20 - damit nicht bei Spannungstunkern gleich alles auf Anfang steht
-
das die spinnen wird seinen Grund in der Wlan-Überlastung haben, so das das Gerät zu wenig Zeit hat den Eingang abzufragen- ist meine Vermutung.
Wie sehen den deine Rule, die technische Anschaltung und die Triggerparameter für den Interrupt aus zur Umsetzung oder ist es nur ein Buttoneingang .
Der ESP32 ist dafür natürlich besser gerüstet, aber alles geht auch nicht, wenn der Nachtbar das Wlan-Zumacht muss der Kanal gewechselt werden und das kostet Zeit und Rechenleistung
-
wer mit der ungeschützten Bauform klar kommt 👍
-
Also wenn nur 9.3 geht muss man darauf aufsetzend was ändern.
Sicherlich wird durch Alterung und schlechte 3.3V Besorgung das Tasmota 13.3 Release ( das letzte ausgewogene) für solche schwachen Systeme zu viel Strom verlangen!
1. an die 3.3V im Gerät mindestens 250myF Elko als stütze einlösten
2. dem Wlan mehr Leistung abtreten mit Consoleneingabe sleep 250
3. Ersatzgerät Shelly 1 PM 3 gen
-
ah - als Firmware taugt das nicht
da ist der Bootlader mit dabei
-
sollte für ESP32 die 4 MB für ESP8266 auch gehen !