define mqttRollos MQTT_GENERIC_BRIDGE mqtt TYPE=ROLLO,TYPE=SD_Keeloq
attr mqttRollos IODev MqttHomeAssistant
attr mqttRollos globalDefaults sub:base=mqttRollos/set pub:base=mqttRollos
attr mqttRollos room MQTT
attr mqttRollos verbose 5
# DEF mqtt TYPE=ROLLO,TYPE=SD_Keeloq
# FUUID 650c553d-f33f-fef7-53da-18af3cd59397c7b6
# FVERSION 10_MQTT_GENERIC_BRIDGE.pm:v1.4.4-s25117/2021-10-25
# IODev MqttHomeAssistant
# NAME mqttRollos
# NR 90
# NTFY_ORDER 70-mqttRollos
# STATE ???
# TYPE MQTT_GENERIC_BRIDGE
# devspec TYPE=ROLLO,TYPE=SD_Keeloq
# eventCount 6
# prefix mqtt
# READINGS:
# 2024-04-25 15:55:24 IODev MqttHomeAssistant
# 2024-04-25 17:02:20 attrTemplateVersion 20211208_MGB_M2D
# 2024-04-25 17:02:20 device-count 13
# 2024-04-25 15:55:22 incoming-count 0
# 2024-04-25 15:55:22 outgoing-count 0
# 2024-04-25 15:55:24 transmission-state IO device initialized (mqtt2)
# 2024-04-25 15:55:22 updated-reading-count 0
# 2024-04-25 15:55:22 updated-set-count 0
# devices:
# :global:
# :alias:
# :defaults:
# pub:base mqttRollos
# sub:base mqttRollos/set
# ROLLO_balkon:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x556872ab36f8)
# HASH(0x556872a86e48)
# ROLLO_buero:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x556872a86e18)
# HASH(0x556872a60800)
# ROLLO_chillraum_fenster:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x556872a87520)
# HASH(0x556872a86cf8)
# ROLLO_chillraum_tuer:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x5568727b8ff8)
# HASH(0x556872a88cb0)
# ROLLO_elternschlafzimmer:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x5568727b9340)
# HASH(0x5568727b9100)
# ROLLO_esszimmer:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x5568727b9448)
# HASH(0x5568727b9688)
# ROLLO_kueche:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x5568727b9790)
# HASH(0x5568727b99d0)
# ROLLO_louis_fenster:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x5568727b9ad8)
# HASH(0x556872aadfa0)
# ROLLO_louis_tuer:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x556872aae0a8)
# HASH(0x556872aae2e8)
# ROLLO_toilette:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x556872aae630)
# HASH(0x556872aae3f0)
# ROLLO_tom_fenster:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x556872aae978)
# HASH(0x556872aae738)
# ROLLO_tom_tuer:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x556872aaea80)
# HASH(0x556872aaecc0)
# ROLLO_wohnzimmer:
# :alias:
# :publish:
# pct:
# mode R
# topic {"$base/$device/$name"}
# state:
# expression {$value=~m/^(pct-\d+|half)$/?'stopped':$value}
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# HASH(0x556872aaf030)
# HASH(0x556872aaedc8)
# globalDeviceExcludes:
# globalReadingExcludes:
# globalTypeExcludes:
# pub:
# FHEMWEB *
# Global *
# MQTT transmission-state
# MQTT_BRIDGE transmission-state
# MQTT_DEVICE transmission-state
# MQTT_GENERIC_BRIDGE *
# telnet *
# sub:
# FHEMWEB *
# Global *
# MQTT transmission-state
# MQTT_BRIDGE transmission-state
# MQTT_DEVICE transmission-state
# MQTT_GENERIC_BRIDGE *
# telnet *
# subscribe:
#
setstate mqttRollos 2024-04-25 15:55:24 IODev MqttHomeAssistant
setstate mqttRollos 2024-04-25 17:02:20 attrTemplateVersion 20211208_MGB_M2D
setstate mqttRollos 2024-04-25 17:02:20 device-count 13
setstate mqttRollos 2024-04-25 15:55:22 incoming-count 0
setstate mqttRollos 2024-04-25 15:55:22 outgoing-count 0
setstate mqttRollos 2024-04-25 15:55:24 transmission-state IO device initialized (mqtt2)
setstate mqttRollos 2024-04-25 15:55:22 updated-reading-count 0
setstate mqttRollos 2024-04-25 15:55:22 updated-set-count 0
Zitat von: prenzela am 25 April 2024, 16:27:23- müsste bei Solarproduktion nicht die Sonne "leuchten". Derzeit ist sie dunkel.Der Opacity Wert müsste bei 0.42 liegen, also relativ Dunkel. Das hängt von der produzierten Leistung (3576) im Verhältnis zur maximal möglichen Leistung (12580) ab. Die rechnung für die Deckkraft ist 0.2 + (0.8 * (aktuelle Leistung/Maximalleistung))
Zitat von: prenzela am 25 April 2024, 16:27:23- die Einheit für den Ladung des Autos müsste entweder in kW lauten (das reading aus dem Go-e) wird in KW ausgegeben oder das reading müsste im Code umgerechnet werden. Wie macht man das ? Durch das Komma, ergibt sich auch ein Komma im Hausverbrauch.Entweder userReading in FHEM nutzen oder per pipe in W umrechnen.
[wb-feed]="myGoE:KW_charging_measured | multiply(1000)"
Zitat von: prenzela am 25 April 2024, 16:27:23- der Parameter "no-wb-in-home" scheint nicht zu funktionierenPvvis weiss nicht, dass es hier kW von W abzieht (3576 + 3087 + 1845 - 7.17 = 8500.83); neu beobachten wenn die Einheiten einheitlich sind.
Zitat von: prenzela am 25 April 2024, 16:27:23-die Kalkulation für die Ladezeit des Akkus wird nicht ausgerechnet. Der Parameter calc-bat-remain-time zeigt keine Wirkung. Ohne Parameter wird trotzdem 0.0 in der Batterie angezeigt.Dafür benötigt pvvis den Parameter batmax - siehe auch die Parameter-Beschreibung in #289:
batmax="19500"
Zitat von: prenzela am 25 April 2024, 16:27:23- Könnte man den Hausverbrauch aus einem Reading direkt anzeigen lassen (der S10 gibt es ja aus)Könnte man bestimmt, ist aber derzeit nicht vorgesehen - und war auch bisher nicht gefordert. Könnte aber schwierig werden zwischen "Berechnung im Widget" und "kommt von FHEM" zu unterscheiden. Wenn gesteigertes Interesse bestehen sollte, könnte man über eine Lösung nachdenken.
<!-- pviis-->
<ftui-grid-tile row="1" col="2" height="7" width="7">
<header>Solaranlage</header>
<ftui-pvvis
width="400px"
[charge-discharge]="S10:battwatt"
batmax="19500"
[soc]="S10:battsoc"
[produce]="S10:sunwatt"
[wb-feed]="myGoE:KW_charging_measured | multiply(1000)"
pvmax="12580"
[feed-receive]="S10:gridwatt | multiply(-1)"
grid-icon="pylon"
unit-soc="%"
unit-value="W"
sun-icon="sun"
calc-bat-remain-time
no-wb-in-home>
</ftui-pvvis>
</ftui-grid-tile>
<!-- pviis-->
<ftui-grid-tile row="1" col="2" height="7" width="7">
<header>Solaranlage</header>
<ftui-pvvis
width="400px"
[charge-discharge]="S10:battwatt"
battmax="19500"
[soc]="S10:battsoc"
[produce]="S10:sunwatt"
[wb-feed]="myGoE:KW_charging_measured"
pvmax="12580"
[feed-receive]="S10:gridwatt | multiply(-1)"
grid-icon="pylon"
unit-soc="%"
unit-value="W"
sun-icon="sun"
calc-bat-remain-time
no-wb-in-home>
</ftui-pvvis>
</ftui-grid-tile>
[color]="Haus_Kalenderansicht:row_4_column_2 | (v)=>this.v=v; Haus_Kalenderansicht:current_date | (t)=>t===this.v | map('true:primary, false:grey')"
Grundsätzlich musst du Werte über die pipe an die Funktion übergeben um später den aktuellen Readings-Wert mit einem weiteren Readings-Wert zu vergleichen; dies kann afaik FTUI3 nicht von Haus aus. Daher erst v bilden und später mit t vergleichen; die Bezeichnungen habe ich der Kürze wegen gewählt (value, today). Zum Debuggen würde ich die Pipe-Kette sukzessive aufbauen und debuggen. Genau genommen wird auch nur ein String-Vergleich durchgeführt, was bei Datumswerten relativ schlampig, aber für die gegebenen Bedingungen uU ausreichend, ist. Nichtsdestotrotz halte ich eine Lösung auf FHEM-Seite für besser.let var t;
function t_assign(t)
{
this.t = t;
}
Zitatwas für befehle meinst du genau?Aktuell öffne ich die Rollos über eine Structure (4 Rollos).
Zitatschon mal im syslog auf dem anderen pi geschaut?
Apr 25 10:03:14 rmt-cul01 ser2net: dev read error for device on port tester: Remote end closed connection
Apr 25 10:03:14 rmt-cul01 kernel: [ 1290.822935] usb 1-1.5: USB disconnect, device number 6
Apr 25 10:03:15 rmt-cul01 kernel: [ 1291.150871] usb 1-1.5: new full-speed USB device number 7 using dwc_otg
Apr 25 10:03:15 rmt-cul01 kernel: [ 1291.296615] usb 1-1.5: New USB device found, idVendor=03eb, idProduct=204b, bcdDevice= 0.00
Apr 25 10:03:15 rmt-cul01 kernel: [ 1291.296683] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Apr 25 10:03:15 rmt-cul01 kernel: [ 1291.296714] usb 1-1.5: Product: CUL868
Apr 25 10:03:15 rmt-cul01 kernel: [ 1291.296735] usb 1-1.5: Manufacturer: busware.de
Apr 25 10:03:15 rmt-cul01 kernel: [ 1291.314573] cdc_acm 1-1.5:1.0: ttyACM0: USB ACM device
Apr 25 10:03:18 rmt-cul01 ModemManager[336]: <info> [base-manager] couldn't check support for device '/sys/devices/platform/soc/20980000.usb/usb1/1-1/1-1.5': not supported by any plugin
Zitatdein zauberwort "NOBREAK" im yaml file finde ich immer nur kleingeschrieben zwischen baudrate und local. vielleicht macht es einen unterschied?Hab' ich mal auf Kleinschrift gesetzt...