Home of FHEM
First steps in FHEM (FHEMWiki)
FHEM reference
HomeMatic
Somit sind die Geräte aktuell nur über eine systemeigene Zentrale CCU2 oder neuer (als physisch vorhandenes Interface), oder eine virtualisierte CCU[1], jeweils zusammen mit den HomeMatic-HMCCU-Modulen in FHEM integrierbar und nicht unmittelbar als Homematic-Geräte ansprechbar.
Zur Einbindung von Geräten, die HM-IP verwenden, ist derzeit (Stand Januar 2019) noch zwingend eine (ggf. virtualisierte) CCU2 oder neuer erforderlich.
HA-Bridge + Logitech + Alexa
Logitech Harmony Fernbedienung oder Philips Hue oder Alexa integrieren)
sudo wget https://github.com/bwssytems/ha-bridge/releases/download/v5.4.0/ha-bridge-5.4.0.jar
Ha-Bridge-Service (Philips Hue, etc.) und Alexa: https://forum.fhem.de/index.php?topic=66920.0
Gelöst: Alexa findet keine Geräte von HA Bridge » elcombri.de
Alexa cannot discover devices which used to work. · Issue #1293 · bwssytems/ha-bridge · GitHub
37_echodevice: Alexa echo von fhem ansprechen (z.B. Waschmaschine fertig): https://forum.fhem.de/index.php?topic=82631.0
Alternativen:
Alexa-fhem connector (skill): https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa (Nachteil: skill nötig und externer Server zu fhem-Vereins-Server als proxy, außerdem zusätzlicher Service, der laufen muss)
Homematic mit Alexa steuern – ohne Cloud-Dienst – HomeMatic-Forum / FHZ-Forum (homematic-forum.de)
Siri über Homebridge anbinden
https://wiki.fhem.de/wiki/Homebridge_einrichten
Homebridge Start und Status in FHEM – FHEMWiki
Systemd Service for homebridge (http://github.com/nfarina/homebridge) · GitHub
Homematic Homebridge Fehlerbehebung: Gerät wird auf dem iPhone nicht gefunden › technikkram.net
Homebridge User Configs – FHEMWiki
GitHub – justme-1968/homebridge-fhem: a fhem platform plugin for homebridge
Türsprechanlage über ritto tk-adapter an Fritzbox anbinden und per fhem mit Telegram und Ip cam koppeln
Folgende Hardware wurde verwendet:
https://www.ritto.de/produkte/twinbus-audio-hausstationen/tk-anbindung.html#image-2
Optional IP Cam, z.B. Foscam oder Instar
Fhem Installation auf Linux, z.B. virtuell auf einer Qnap oder Synology Nas oder auf Raspberry
Dann folgendermaßen vorgehen:
- Türsprechanlage (Ritto) über TK-Adapter an Fon1 oder Fon2 an der Fritzbox einrichten:
https://avm.de/service/fritzbox/fritzbox-7590/wissensdatenbank/publication/show/3514_Analoge-Tursprechanlage-in-FRITZ-Box-einrichten/
=> damit kann man dan schon die Telefone klingeln lassen und mit *9 den Türöffner am Handy (FritzFon app) oder Telefon betätigen - SIP client bei Fhem einrichten:
SIP-Client – FHEMWiki
Modul 96_SIP (fhem.de) - Telegram Bot einrichten:
TelegramBot – FHEMWiki - SIP client mit Telegram verbinden
- a) über ein fhem doif:
(([HaustuerStatusVar:state] ne “ringing”) and ([FritzFonSip:caller_state] =~ “ringing”) and ([FritzFonSip:caller] eq “Tuersprechanlage7590 sip:**2\@fritz.box”))
(set HaustuerStatusVar ringing;
set TelegramBot queryInline (Haustüre öffnen) Türklingel wurde betätigt;
get FosCamHaustuere image;
set TelegramBot sendImage ./www/images/webcam/FosCamHaustuere_snapshot.jpg; )
DOELSEIF (([HaustuerStatusVar:state] =~ “ringing”) and ([Haustuere:state] eq “open”))
(set FritzFonSip fetch; set HaustuerStatusVar on; set TelegramBot message Haustüre ist offen)
DOELSEIF (([HaustuerStatusVar:state] =~ “ringing”) and ([Haustuere:state] eq “closed”))
()
DOELSEIF (([HaustuerStatusVar:state] ne “off”) and ([Haustuere:state] eq “closed”))
(set HaustuerStatusVar off) - b) und ein Notify:
TelegramBot:queryData.*ffnen.* set FritzFonSip call **2 30 -#*9
=> damit bekommt man über Telegram bescheid, wenn jemand klingelt, und man bekommt nen Button “Haustüre öffnen” angezeigt
- a) über ein fhem doif:
- optional: Ip cam anbinden:
IPCAM – FHEMWiki
Alarmanlage
Alarmanlage einrichten (siehe https://wiki.fhem.de/wiki/Modul_Alarm)
DebianMail
E-Mail senden via FHEM auf Debian/Ubuntu (siehe FHEMWiki)
Presence via FritzBox
see FRITZBOX (FHEMWiki)
Raumklima
Raumklima im Smart Home mit FHEM verbessern: Taupunktoptimiertes Lüften | incl. SVG Plot
Raumluftqualität mit FHEM überwachen | meintechblog.de + logfile mit svg plot
HelperUtils to notify
Telegram Bot einrichten:
FHEM Monitoring
Solar PV Anlage
Folgendermaßen habe ich meine PV-Anlage von Solax (mit Solax-Wechselrichter und Batterie) eingerichtet und mit meiner Wärmepumpe (AlphaInnotec) gekoppelt;
Auswertung von Solax X3 Hybrid Inverter – Seite 45 – Datenlogger und Überwachung – Photovoltaikforum
defmod solax_local HTTPMOD <IP-Adress deines WLAN-Dongles mit abschließendem Slash, z.B. http://192.168.0.208/> 60
attr solax_local disable 0
attr solax_local extractAllJSON 1
attr solax_local group energy
attr solax_local reading101JSON Data_103
attr solax_local reading101Name result_soc
attr solax_local reading102JSON Information_0
attr solax_local reading102Name rated_capacity
attr solax_local reading103JSON Data_6
attr solax_local reading103Name AC_Power1
attr solax_local reading103OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading104JSON Data_7
attr solax_local reading104Name AC_Power2
attr solax_local reading104OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading105JSON Data_8
attr solax_local reading105Name AC_Power3
attr solax_local reading105OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading106JSON ver
attr solax_local reading106Name FW_Wifi
attr solax_local reading107JSON Data_34
attr solax_local reading107Name result_feedinpower
attr solax_local reading107OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading108JSON Data_169
attr solax_local reading108Name BAT_Voltage
attr solax_local reading108OExpr $val/100
attr solax_local reading109JSON Data_14
attr solax_local reading109Name result_powerdc1
attr solax_local reading109OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading110JSON Data_15
attr solax_local reading110Name result_powerdc2
attr solax_local reading110OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading115JSON Information_2
attr solax_local reading115Name result_inverterSN
attr solax_local reading138JSON Data_2
attr solax_local reading138Name AC_Current1
attr solax_local reading138OExpr $val / 10
attr solax_local reading141JSON Data_44
attr solax_local reading141Name result_batPower
attr solax_local reading141OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading142JSON sn
attr solax_local reading142Name result_sn
attr solax_local reading146JSON Data_0
attr solax_local reading146Name AC_Voltage1
attr solax_local reading146OExpr $val / 10
attr solax_local reading147JSON Data_1
attr solax_local reading147Name AC_Voltage2
attr solax_local reading147OExpr $val/10
attr solax_local reading148JSON Data_2
attr solax_local reading148Name AC_Voltage3
attr solax_local reading148OExpr $val/10
attr solax_local reading149JSON Data_3
attr solax_local reading149Name AC_Current1
attr solax_local reading149OExpr $val/10
attr solax_local reading150JSON Data_4
attr solax_local reading150Name AC_Current2
attr solax_local reading150OExpr $val/10
attr solax_local reading151JSON Data_5
attr solax_local reading151Name AC_Current3
attr solax_local reading151OExpr $val/10
attr solax_local reading159JSON Data_12
attr solax_local reading159Name DC_Current1
attr solax_local reading159OExpr $val / 10
attr solax_local reading160JSON Data_13
attr solax_local reading160Name DC_Current2
attr solax_local reading160OExpr $val/10
attr solax_local reading168Format %.3f
attr solax_local reading168JSON Data_70
attr solax_local reading168Name result_yieldtoday
attr solax_local reading168OExpr $val / 10
attr solax_local reading179JSON Data_10
attr solax_local reading179Name DC_Voltage1
attr solax_local reading179OExpr $val / 10
attr solax_local reading180JSON Data_11
attr solax_local reading180Name DC_Voltage2
attr solax_local reading180OExpr $val / 10
attr solax_local reading181JSON Data_75
attr solax_local reading181Name Data_75
attr solax_local reading193JSON Data_9
attr solax_local reading193Name result_acpower
attr solax_local reading193OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading195JSON Data_47
attr solax_local reading195Name result_consumepower
attr solax_local reading195OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading196JSON Data_68
attr solax_local reading196Name result_yieldtotal
attr solax_local reading196OExpr $val / 10
attr solax_local reading207JSON type
attr solax_local reading207Name Inverter_Type
attr solax_local reading90JSON Data_88
attr solax_local reading90Name result_consumeenergy
attr solax_local reading90OExpr $val/100
attr solax_local reading99JSON Data_105
attr solax_local reading99Name BAT_Temperature
attr solax_local requestData optType=ReadRealTimeData/?pwd=<SN deines WLAN-Dongles, QR-Code>
attr solax_local requestHeader1 Content-Type: application/json
attr solax_local requestHeader2 Accept: application/json
attr solax_local room energy,solar
attr solax_local stateFormat {sprintf(\
“PV-Leistung (Solax DC): %i W
\
WR-Leistung (Solax AC): %i W
\
Einspeise-Leistung(Solax/HH/Netz): %i / %i / %i W
\
WP-Leistung (Gesamt/PV/Netz): %i = %i + %i W
\
Haus-Leistung (Solax): %i W
\
Batterie-Leistung: %i W
\
Batterie-Loading: %i %%
\
Yield (Heute/Gesamt): %.1f / %.1f kWh
\
Verdient (Netz/HH/WP) seit 27-Apr-2023: %.2f / %.2f / %.2f €
\
SN (Dongle/WR): %s / %s”,\
ReadingsVal($name,”result_powerdc1″,0)+ReadingsVal($name,”result_powerdc2″,0),\
ReadingsVal($name,”result_acpower”,0),\
ReadingsVal($name,”result_feedinpower”,0),\
ReadingsVal($name,”SMZ2_Leistung_HH”,0),\
ReadingsVal($name,”SMZ1_Leistung_Netz”,0),\
ReadingsVal($name,”WP_Leistung”,0),\
ReadingsVal($name,”WP_Leistung_PV”,0),\
ReadingsVal($name,”WP_Leistung_Netz”,0),\
ReadingsVal($name,”result_consumepower”,0),\
ReadingsVal($name,”result_batPower”,0),\
ReadingsVal($name,”result_soc”,0),\
ReadingsVal($name,”result_yieldtoday”,0),\
ReadingsVal($name,”result_yieldtotal”,0),\
ReadingsVal(“MQTT2_SHRDZM_3C6105FB1B1D”,”Einspeisung_EUR_since_27-Apr-2023″,0.0),\
-ReadingsVal(“MQTT2_SHRDZM_4C752535F3EB”,”Haushaltverbrauch_EUR_since_27-Apr-2023″,0.0),\
-ReadingsVal(“SHRDZM_Waermestrom”,”Waermepumpenverbrauch_EUR_since_27-Apr-2023″,0.0),\
ReadingsVal($name,”result_sn”,””),\
ReadingsVal($name,”result_inverterSN”,””))\
}
attr solax_local userReadings SMZ1_Verbrauch_Netz {ReadingsVal(“MQTT2_SHRDZM_3C6105FB1B1D”, “1.8.0”, 0.0)},\
SMZ1_Einspeisung_Netz {ReadingsVal(“MQTT2_SHRDZM_3C6105FB1B1D”, “2.8.0”, 0.0)},\
SMZ1_Leistung_Netz {-ReadingsVal(“MQTT2_SHRDZM_3C6105FB1B1D”, “16.7.0”, 0.0)},\
SMZ2_Verbrauch_HH {ReadingsVal(“MQTT2_SHRDZM_4C752535F3EB”, “1.8.0”, 0.0)},\
SMZ2_Einspeisung_HH {ReadingsVal(“MQTT2_SHRDZM_4C752535F3EB”, “2.8.0”, 0.0)},\
SMZ2_Leistung_HH {-ReadingsVal(“MQTT2_SHRDZM_4C752535F3EB”, “16.7.0”, 0.0)},\
WP_Verbrauch_Netz {ReadingsVal(“SHRDZM_Waermestrom”, “1.8.0_Netz”, 0.0)},\
WP_Verbrauch_PV {ReadingsVal(“SHRDZM_Waermestrom”, “1.8.0_PV”, 0.0)},\
WP_Verbrauch {ReadingsVal(“SHRDZM_Waermestrom”, “1.8.0”, 0.0)},\
WP_Leistung_Netz {ReadingsVal(“SHRDZM_Waermestrom”, “16.7.0_Netz”, 0.0)},\
WP_Leistung_PV {ReadingsVal(“SHRDZM_Waermestrom”, “16.7.0_PV”, 0.0)},\
WP_Leistung {ReadingsVal(“SHRDZM_Waermestrom”, “16.7.0”, 0.0)},\
PV_Leistung_DC {ReadingsVal($name, “result_powerdc1”, 0.0) + ReadingsVal($name, “result_powerdc2”, 0.0)}
attr solax_local verbose 0
Alternativ kann man den Solax Wechselrichter auch über die Internet-Web-Schnittstelle anbinden, dazu muss er aber im Internet hängen und die Daten werden nur alle 5 Minuten aktualisiert, da bekommt man auch wesentlich weniger Daten raus, genügt aber für den normalen Gebrauch, nur die Haushalts-Energie hab ich dort noch nicht gefunden:
defmod solax HTTPMOD https://www.solaxcloud.com/proxyApp/proxy/api/getRealtimeInfo.do?tokenId=20230513145304659386563&sn=<SN deines WLAN-Dongles, QR-Code> 150
attr solax alias solax
attr solax extractAllJSON 1
attr solax group energy
attr solax requestHeader1 Content-Type: application/json
attr solax requestHeader2 Accept: application/json
attr solax room energy
attr solax stateFormat {sprintf(\
"PV-Leistung (Solax DC): %i W
\
WR-Leistung (Solax AC): %i W
\
Einspeise-Leistung(Solax/HH/Netz) %i / %i / %i W
\
WP-Leistung (Gesamt/PV/Netz): %i = %i + %i W
\
Haus-Leistung (Solax): %i W
\
Batterie-Leistung: %i W
\
Batterie-Loading: %i %%
\
Yield (Heute/Gesamt): %.1f / %.1f kWh
\
Verdient (Netz/HH/WP) seit 27-Apr-2023: %.2f / %.2f / %.2f €
\
SN (Dongle/WR): %s / %s",\
ReadingsVal($name,"result_powerdc1",0)+ReadingsVal($name,"result_powerdc2",0),\
ReadingsVal($name,"result_acpower",0),\
ReadingsVal($name,"result_feedinpower",0),\
ReadingsVal($name,"SMZ2_Leistung_HH",0),\
ReadingsVal($name,"SMZ1_Leistung_Netz",0),\
ReadingsVal($name,"WP_Leistung",0),\
ReadingsVal($name,"WP_Leistung_PV",0),\
ReadingsVal($name,"WP_Leistung_Netz",0),\
ReadingsVal($name,"result_acpower",0)-ReadingsVal($name,"result_feedinpower",0),\
ReadingsVal($name,"result_batPower",0),\
ReadingsVal($name,"result_soc",0),\
ReadingsVal($name,"result_yieldtoday",0),\
ReadingsVal($name,"result_yieldtotal",0),\
ReadingsVal("MQTT2_SHRDZM_3C6105FB1B1D","Einspeisung_EUR_since_27-Apr-2023",0.0),\
-ReadingsVal("MQTT2_SHRDZM_4C752535F3EB","Haushaltverbrauch_EUR_since_27-Apr-2023",0.0),\
-ReadingsVal("SHRDZM_Waermestrom","Waermepumpenverbrauch_EUR_since_27-Apr-2023",0.0),\
ReadingsVal($name,"result_sn",""),\
ReadingsVal($name,"result_inverterSN",""))\
}
attr solax userReadings SMZ1_Verbrauch_Netz {ReadingsVal("MQTT2_SHRDZM_3C6105FB1B1D", "1.8.0", 0.0)},\
SMZ1_Einspeisung_Netz {ReadingsVal("MQTT2_SHRDZM_3C6105FB1B1D", "2.8.0", 0.0)},\
SMZ1_Leistung_Netz {-ReadingsVal("MQTT2_SHRDZM_3C6105FB1B1D", "16.7.0", 0.0)},\
SMZ2_Verbrauch_HH {ReadingsVal("MQTT2_SHRDZM_4C752535F3EB", "1.8.0", 0.0)},\
SMZ2_Einspeisung_HH {ReadingsVal("MQTT2_SHRDZM_4C752535F3EB", "2.8.0", 0.0)},\
SMZ2_Leistung_HH {-ReadingsVal("MQTT2_SHRDZM_4C752535F3EB", "16.7.0", 0.0)},\
WP_Verbrauch_Netz {ReadingsVal("SHRDZM_Waermestrom", "1.8.0_Netz", 0.0)},\
WP_Verbrauch_PV {ReadingsVal("SHRDZM_Waermestrom", "1.8.0_PV", 0.0)},\
WP_Verbrauch {ReadingsVal("SHRDZM_Waermestrom", "1.8.0", 0.0)},\
WP_Leistung_Netz {ReadingsVal("SHRDZM_Waermestrom", "16.7.0_Netz", 0.0)},\
WP_Leistung_PV {ReadingsVal("SHRDZM_Waermestrom", "16.7.0_PV", 0.0)},\
WP_Leistung {ReadingsVal("SHRDZM_Waermestrom", "16.7.0", 0.0)},\
PV_Leistung_DC {ReadingsVal($name, "result_powerdc1", 0.0) + ReadingsVal($name, "result_powerdc2", 0.0)}
attr solax verbose 0
SHRDZM
shrdzm.com bietet Lösungen (Hardware) zum Auslesen der Stromzähler oder Gaszähler.
defmod MQTT2_SHRDZM_3C6105FB1B1D MQTT2_DEVICE SHRDZM_3C6105FB1B1D
attr MQTT2_SHRDZM_3C6105FB1B1D alias SHRDZM_Gesamtstrom
attr MQTT2_SHRDZM_3C6105FB1B1D readingList SHRDZM_3C6105FB1B1D:SHRDZM/3C6105FB1B1D/state:.* state\
SHRDZM_3C6105FB1B1D:SHRDZM/3C6105FB1B1D/IP:.* IP\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_lasterror/config:.* config\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_uptime/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:SHRDZM/3C6105FB1B1D/3C6105FB1B1D/sensor:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_1-8-0/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_2-8-0/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_16-7-0/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_32-7-0/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_52-7-0/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_72-7-0/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_31-7-0/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_51-7-0/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_71-7-0/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_81-7-1/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_81-7-2/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_81-7-4/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_81-7-15/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_81-7-26/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_14-7-0/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_data/config:.* config\
SHRDZM_3C6105FB1B1D:SHRDZM/3C6105FB1B1D/3C6105FB1B1D/init:.* init\
SHRDZM_3C6105FB1B1D:SHRDZM/3C6105FB1B1D/3C6105FB1B1D/config:.* config\
SHRDZM_3C6105FB1B1D:SHRDZM/3C6105FB1B1D/3C6105FB1B1D/param:.* param\
SHRDZM_3C6105FB1B1D:SHRDZM/3C6105FB1B1D/3C6105FB1B1D/version:.* version\
SHRDZM_3C6105FB1B1D:SHRDZM/3C6105FB1B1D/3C6105FB1B1D/sensors:.* sensors\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_timestamp/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_1-7-0/config:.* { json2nameValue($EVENT) }\
SHRDZM_3C6105FB1B1D:homeassistant/sensor/3C6105FB1B1D_2-7-0/config:.* { json2nameValue($EVENT) }
attr MQTT2_SHRDZM_3C6105FB1B1D room MQTT2_DEVICE,energy
attr MQTT2_SHRDZM_3C6105FB1B1D userReadings 1.8.0_WP {ReadingsVal($name, “1.8.0”, 0.0) – ReadingsVal(“MQTT2_SHRDZM_4C752535F3EB”, “1.8.0”, 0.0)},\
16.7.0_WP {ReadingsVal($name, “16.7.0”, 0.0) – ReadingsVal(“MQTT2_SHRDZM_4C752535F3EB”, “16.7.0”, 0.0)},\
1.8.0_HH {ReadingsVal($name, “1.8.0”, 0.0) – ReadingsVal($name, “1.8.0_WP”, 0.0)},\
16.7.0_HH {ReadingsVal($name, “16.7.0”, 0.0) – ReadingsVal($name, “16.7.0_WP”, 0.0)},\
Einspeisung_EUR_since_27-Apr-2023 {ReadingsVal($name, “2.8.0”, 0)*8/100000}