@armilar Jetzt habe ich endlich verstanden, wofür es die Blockly Skripte braucht. Passt. Ich habe die ganze Zeit mit Taster rumgemacht, Tastensensor brachte dann den Durchbruch. Und damit ist auch klar, warum ich den Wert nochmal übersetzen muss. Ist es möglich das InSelPopup in der cardEntities auch mit den Pressbutton aufzurufen?
NEWS
Best posts made by christian_ffm
-
RE: SONOFF NSPanel mit Lovelace UI
Latest posts made by christian_ffm
-
RE: SONOFF NSPanel mit Lovelace UI
Hallo, ich habe eine weitere Frage: Wie kann ich den buttonText dynamisch ändern? Der Text wird leider nicht aktualisiert, wenn sich der Datenpunkt ändert, sondern nur einmal beim initialen Laden korrekt übernommen. Ist es möglich ein update zu triggern?
{ navigate: true, id: null, targetPage: 'Geraete_Multiplus_Modeselect', name: 'Mode', icon: 'heating-coil', buttonText: get_state_MultiplusMode() } function get_state_MultiplusMode(): string { return getState("0_userdata.0.Multiplus.Mode_Soll_Klartext").val }
Zweite Frage: Wenn ich die gleiche Funktion nutze um das Feld Name zu füllen, bekomme ich eine Fehlermeldung, das klappt leider garnicht. Gibt es hier eine Möglichkeit?
-
RE: SONOFF NSPanel mit Lovelace UI
@armilar said in SONOFF NSPanel mit Lovelace UI:
Wenn du die physischen Buttons meinst, dann kann es nur über den Umweg einer cardEntities oder cardGrid(X) aufegrufen werden, da es ein Steuerelement inkl. Popup ist.
@armilar Danke erneut für deine sehr schnelle Antwort. Ich meine den Button im entitiycard Menü.
-
RE: SONOFF NSPanel mit Lovelace UI
@armilar Jetzt habe ich endlich verstanden, wofür es die Blockly Skripte braucht. Passt. Ich habe die ganze Zeit mit Taster rumgemacht, Tastensensor brachte dann den Durchbruch. Und damit ist auch klar, warum ich den Wert nochmal übersetzen muss. Ist es möglich das InSelPopup in der cardEntities auch mit den Pressbutton aufzurufen?
-
RE: SONOFF NSPanel mit Lovelace UI
@armilar Danke für deine schnelle Antwort. Ich habe mir das jetzt angeschaut und auch ausprobiert. Ich möchte aber garnicht navigieren, sondern einen Wert setzen. Ich habe das Blockly angepasst eingebaut, allerdings verstehe ich nicht wie ich mit dem Blockly aus einem Wert true/false als Ergebnis des Tasters zu 1,2 oder 3 in Mode_Soll komme. Ein Modal erscheint weiter nicht.
Ich hatte Info gewählt, weil im Servicemenü in der Sprach- oder Temperatureinheitenauswahl jeweils auch ein Info Alias genutzt wird.
Kannst du mir nochmal mit 2,3 Sätzen erklären, wie ich einen Datenpunkt mit einem Wert aus einer modeList schreiben kann? Danke dir!
-
RE: SONOFF NSPanel mit Lovelace UI
Hallo,
ich scheitere gerade an modeList. Folgende Seite habe ich angelegt:let Geraete_Multiplus: PageType = { "type": "cardGrid", "heading": "Multiplus", "useColor": true, 'subPage': true, 'parent': Geraete_1, "items": [ {id: 'alias.0.Multiplus.Mode', name: 'Mode', icon: 'checkbox-marked-circle-outline', modeList: ['Mode1', 'Mode2', 'Mode3'], inSel_ChoiceState: true} ] };
Leider kann ich in der Oberfläche keinen Wert auswählen. Es erscheint kein Modal. Im Gerätemanager ist der Alias wie folgt angelegt:
Der Alias verweist auf folgenden Punkt:{ "common": { "name": "Mode_Soll", "desc": "Manuell erzeugt", "role": "state", "type": "number", "write": true, "def": 0 }, "type": "state", "native": {}, "_id": "0_userdata.0.Multiplus.Mode_Soll", "acl": { "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1738534279877 }
Ich bilde mir ein, alles genauso wie im Servicemenü in der Sprach- oder Temperatureinheitenauswahl angelegt zu haben. Davon unabhängig: Kann ich modelist mit dem Typ cardEntities nutzen?
Vielen Dank für eure Unterstützung! Beste Grüße Christian
-
RE: SONOFF NSPanel mit Lovelace UI
@ticaki danke für die schnelle Antwort und Lösung! Läuft direkt. Danke dir!
-
RE: SONOFF NSPanel mit Lovelace UI
Hi,
bei mir kompiliert das NSPanelTs.ts Script nicht, entsprechend wartet auch das Display auf Content. System ist up to date. Die Datei ist original, nur result und send datenpunkte sind in der config geändert. Kann mir jemand einen Hinweis geben, was bei mir fehlt? Danke euch im Vorraus!script.js.global.Sonoffpanel1: TypeScript compilation failed:async export function Init_momentjs() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function CheckConfigParameters() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function InitIoBrokerInfo() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function CheckDebugMode() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function CheckMQTTPorts() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function Init_Release() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function InitConfigParameters() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function Init_ScreensaverAdvanced() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function Init_ActivePageData() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function Init_Screensaver_Backckground_Color_Switch() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function Init_bExit_Page_Change() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function Init_Dimmode_Trigger() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function InitActiveBrightness() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function InitRebootPanel() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function InitUpdateDatapoints() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function Init_Relays() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function InitAlternateMRIconsSize() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function InitDateformat() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function SubscribeMRIcons() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function CreateWeatherAlias() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function InitPageNavi() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function InitWeatherForecast() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function InitDimmode() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function Calc_Consumption(Brightness: number, Relays: number | undefined) { ^ERROR: 'export' modifier must precede 'async' modifier.async export function CountRelaysOn(Path: string): Promise<number> { ^ERROR: 'export' modifier must precede 'async' modifier.async export function DetermineDimBrightness(Path: string) { ^ERROR: 'export' modifier must precede 'async' modifier.async export function DetermineScreensaverDimmode(timeDimMode: NSPanel.DimMode): Promise<number> { ^ERROR: 'export' modifier must precede 'async' modifier.async export function InitMeanPowerConsumption() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function InitPopupNotify() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function get_locales() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function get_locales_servicemenu() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function check_updates() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function get_panel_update_data() { ^ERROR: 'export' modifier must precede 'async' modifier.async export function SendToPanel(val: NSPanel.Payload | NSPanel.Payload[]) { ^ERROR: 'export' modifier must precede 'async' modifier.async export function createAutoMediaAlias(id: string, mediaDevice: string, adapterPlayerInstance: NSPanel.adapterPlayerInstanceType) { ^ERROR: 'export' modifier must precede 'async' modifier.async export function createAutoAlarmAlias(id: string, nsPath: string) { ^ERROR: 'export' modifier must precede 'async' modifier.async export function createAutoUnlockAlias(id: string, dpPath: string) { ^ERROR: 'export' modifier must precede 'async' modifier.async export function createAutoQRAlias(id: string, dpPath: string) { ^ERROR: 'export' modifier must precede 'async' modifier.
-
RE: History Adapter Aufruf liefert kein vernünftiges Result
boom, es funktioniert. Vielen Dank Paul für den entscheidenden Hinweis. Für andere Suchende nochmal der korrekte Screenshot mit Hinweisen, wie man dann an den Durchschnitt (hie der letzten 10 Sekunden) kommt. Wichtig: Man muss bei den Ergebnissen immer den ersten Wert ignorieren. Warum auch immer der mit ausgegeben wird, er markiert der Doku folgend nur die Grenze des untersuchten Intervalls. Mit result[1] greift man sich (kontraintuitiv) das zweite Item in Result und mit .val den Wert.
-
History Adapter Aufruf liefert kein vernünftiges Result
Hallo,
ich möchte den Durchschnittswert der letzten Minute berechnen und dafür den History Adapter nutzen. Alle vier Sekunden wird ein Wert im RAM gespeichert, eine Datenbank wird nicht verwendet. Ich habe alles mögliche probiert, bekomme aber keine vernünftigen Werte raus.
Dieses Skript liefert mir leider nicht die Werte der letzte Minuten sondern schlicht alle Werte, die im Speicher vorhanden sind. Ich kann jede beliebige Aggregationsvariante versuchen, Count/Steps hinzufügen; es werden stets alle Werte ausgegeben. Das einzige was bisher "besser" funktioniert hat war das hier:
So bekomme ich exakt die letzten 15 Werte (was in meinem Fall ungefähr der letzten Minute entspricht. Das kann ich natürlich einfach weiterverarbeiten und selbst Mittelwerte berechnen usw. Die Arbeit kann man sich aber auch sparen, weil ich das ja noch öfter nutzen möchte.
Kann mir jemand weiter helfen? Wie ist die richtige Syntax um mit einem Aufruf exakt einen Mittelwert zurückzubekommen? Vielen Dank für eure Hilfe.
Beste Grüße
Christian -
RE: [gelöst] Optimale Neigung Solarmodule errechnen
@paul53 oh je, was ein blöder Fehler. Copy paste ist was für fortgeschrittene. Danke Paul! Funktioniert jetzt beides einwandfrei mit plausiblen Ergebnissen.