Seite 1 von 1

Funksteckdose String in Switch umwandeln

Verfasst: 27. Dez 2019 22:16
von smarty
Guten Abend zusammen,

Folgende Codes:
Item einer 433MHz Steckdose:

Code: Alles auswählen

Group Steckdosen_Wohnzimmer "Steckdosen" <poweroutlet> (LivingDining)
String poweroutletASwitch "Aquarium" <poweroutlet> (Steckdosen_Wohnzimmer) [ "Switchable" ] { channel="exec:command:poweroutletA-control:input", autoupdate="true" } 
Sitemap, wie es funktioniert, durch das gesonderte Mapping.

Code: Alles auswählen

    Frame {
        Text label="Funksteckdosen" icon="poweroutlet" {
        Switch item=poweroutletASwitch //mappings=[ "ON"="ON", "OFF"="OFF" ]
        }
    }
Problem: Ich will nicht in der Sitemap das gesonderte Mapping stehen haben, weil ich die Steckdose der Gruppe "LivingDining" zugeordnet habe. Wenn ich "LivingDining" aufrufe, steht allerdings nur der String und ich kann hier die Steckdose nicht ein/ausschalten.
Auf der Hauptseite funktioniert alles wunderbar, allerdings ja nur durch das "Sondermapping" in der Sitemap direkt.

Wie bekomme ich diese Switch Funktion ins "LivingDining"?

Danke und viele Grüße

Re: Funksteckdose String in Switch umwandeln

Verfasst: 28. Dez 2019 01:04
von udo1toni
Ich nehme an, Du versuchst, Deine Sitemap über Group Items zu erzeugen? Lass das sein, baue die Sitemap manuell auf. Das Group Widget kan nur das Default Widget für das gewählte Item setzen, das ist für String Items nun mal Text.

Re: Funksteckdose String in Switch umwandeln

Verfasst: 28. Dez 2019 11:05
von smarty
Ja genau! Schade, aber sowas habe ich mir gedacht :cry:
Dann muss ich mich da einlesen wie ich es in der sitemap gruppieren kann.
D.h meine ganzen Gruppierungen in den Items sind sinnlos, weil ich es nicht nutzen kann für die Sitemap? Oder kann ich es mixen, also ein Teil über die Gruppierung in den Items und ein Teil manuell aufgebaut?
Danke!

Re: Funksteckdose String in Switch umwandeln

Verfasst: 28. Dez 2019 11:47
von udo1toni
Das ist total einfach. Ein Text Widget mit anschließendem {} erzeugt eine "Unterseite" mit dem Inhalt der {}. ein Frame Widget mit anschließenden {} erzeugt einen Frame mit dem Inhalt der {}. z.B.:

Code: Alles auswählen

sitemap demo label="root" {
    Frame label="root, 1. Frame" {
        Text label="root, 1.Frame, 1. Widget, no link"
        Text label="root, 1.Frame, 2. Widget, link" {
            Frame label="1. sub page, 1.Frame" {
                Text label="1. sub page, 1. Frame, 1. Widget, no link"
                Text label="1. sub page, 1. Frame, 2. Widget, link" {
                    Switch item=myNumber mappings=[1="1",2="two",3="3",4="four"]
                }
            }
        }
    }
    Frame label="root, 2. Frame" {
        Text label="root, 2.Frame, 1. Widget, no link"
        Text label="root, 2.Frame, 2. Widget, link" {
            Frame label="2. sub page, 1.Frame" {
                Text label="2. sub page, 1. Frame, 1. Widget, no link"
                Text label="2. sub page, 1. Frame, 2. Widget, link" {
                    Selection item=myNumber mappings=[1="1",2="two",3="3",4="four"]
                }
            }
        }
    }
}
Ergibt eine Hauptseite mit zwei Frames. In jedem Frame ist jeweils ein Text Widget ohne und ein Text Widget mit Link auf eine Unterseite. Die beiden Unterseiten enthalten jeweils einen Frame mit jeweils einem Text Widget ohne Link und einem Text Widget mit Link auf eine Unterseite. Diese beiden Unterseiten enthalten jeweils ein einzelnes Widget ohne Frame, im einen Fall ein Switch Widget mit mappings, im anderen Fall ein Selection Widget. Diese beiden Widgets steuern dasselbe Item(!)
Du kannst die Demo Sitemap parallel zu schon vorhandenen Sitemaps anlegen (wichtig: exakt unter dem Namen demo.sitemap). Unter der Voraussetzung, dass Du ein Number Item mit dem Namen myNumber definiert hast, kannst Du Dir die Sitemap anschließend mit
http://ip.des.openhab.rechners:8080/bas ... temap=demo anschauen. Wenn Du eine Seite oder eine Unterseite definierst, dürfen innerhalb einer Ebene dieser Seite nur entweder kein Frame oder ausschließlich Frames definiert sein. Also das hier:

Code: Alles auswählen

sitemap demo label="root" {
    Text label="root,  no Frame, 1. Widget, no link"
    Frame label="root, 1. Frame" {
        Text label="root, 1.Frame, 1. Widget, no link"
        Text label="root, 1.Frame, 2. Widget, link" {
            Frame label="1. sub page, 1.Frame" {
                Text label="1. sub page, 1. Frame, 1. Widget, no link"
                Text label="1. sub page, 1. Frame, 2. Widget, link" {
                    Switch item=myNumber mappings=[1="1",2="two",3="3",4="four"]
                }
            }
        }
    }
}
ist nicht erlaubt, da das 1. Text Widget und der 1. Frame auf der gleichen Ebene sind.

Re: Funksteckdose String in Switch umwandeln

Verfasst: 28. Dez 2019 13:15
von smarty
Super vielen Dank!
Ich habe jetzt mit deiner Anleitung alles in einer Sitemap verarbeitet und es funktioniert wunderbar :) Danke! :)

Re: Funksteckdose String in Switch umwandeln

Verfasst: 28. Dez 2019 15:09
von PeterA
udo1toni hat geschrieben: 28. Dez 2019 11:47 Das ist total einfach. Ein Text Widget mit anschließendem {} erzeugt eine "Unterseite" mit dem Inhalt der {}. ein Frame Widget mit anschließenden {} erzeugt einen Frame mit dem Inhalt der {}. z.B.:
.....
Hi Udo,

Zack und da hab ich auch schon wieder etwas gelernt.
Denn das Frame Text und "Klammer" war immer ein Buch mit 7 Siegeln für mich 🤣.

Grüße und #Gude2020

Peter