Perus-LED-valaistus (PWM-himmennys, yksiväriset, RGB) tuo energiansäästöä ja tunnelmavalaistusta. Edistynyt valaistus lisää:
---
| Osa | Perus vs Edistynyt | Edistynut ominaisuus |
| Kontrolleri | PWM-himmennin | DMX512-kontrolleri (enttec, Philips, Nicolaudie, WLED) |
| Valaistuslogiikka | Manuaalinen (kytkin) | Node-RED / QLC+ / WLED -> skenet, moodit, triggaus |
| Skenet | Vakio (ON/OFF/himmennys) | Auringon nousu/lasku, yö, päivä, kalastus, ankkuri, ankkurihälytys, MOB |
| Sirkadiaaninen | Ei | Circadian Controller (Kumospace, Bionetic, Home Assistant + WLED) -> automaattinen värilämpötila 2700K–6500K |
| Vedenalaiset | Ei (tai vakio) | RGB/RGBW/valkoinen/sininen, 1000–10000 lm, IP68, syvyys 5–30 m |
| Integrointi | Ei | NMEA 2000 / Signal K / MQTT / Home Assistant |
| Etähallinta | Kytkin | Plotteri/MFD, mobiili-appi, ääniohjaus (Alexa/Google), kaukosäädin |
---
| Osanumero | Tuote | OEM-numero | Hinta | |
|---|---|---|---|---|
| DMX-001 | OEM-osa | |||
| WLED-001 | OEM-osa | |||
| UW-001 | OEM-osa | |||
| UW-002 | OEM-osa | |||
| CIR-001 | OEM-osa |
| Ohjelmisto | Käyttötarkoitus | DMX-tuki | WLED-tuki | MQTT | Node-RED | Hinta | Vaikeus |
| WLED | LED-ohjaus (WiFi) | Ei (DDP/Art-Net) | Kyllä (sydän) | Kyllä | Kyllä (MQTT) | 0 € (open source) + ESP32 (10 €) | Helppo |
| QLC+ | DMX-valaistus PC/Mac/Linux | Kyllä (enttec/usbdmx/openDMX) | Kyllä (Art-Net) | Kyllä | Kyllä (MQTT) | 0 € (open source) | Keskivaikea |
| Node-RED | IoT-logiikka, automaatio | Välillisesti (MQTT) | Kyllä (MQTT) | Kyllä (sydän) | Kyllä (sydän) | 0 € (open source) | Keskivaikea |
| Home Assistant | Kotiautomaatio, MQTT | Välillisesti (MQTT) | Kyllä (integraatio) | Kyllä | Kyllä | 0 € (open source) | Keskivaikea |
| Light-O-Rama | Koriste-valaistus (joulu/vene) | Kyllä | Ei | Ei | Ei | 50–500 € (Pro) | Helppo |
| Daslight | DMX-valaistus (musiikki-sync) | Kyllä (enttec/usbdmx) | Ei | Ei | Ei | 100–1000 € (Pro) | Keskivaikea |
| Madrix | LED-matriisi (video-mapping) | Kyllä (enttec/NEB) | Ei (Art-Net) | Ei | Ei | 500–5000 € (Pro) | Vaikea |
Suositus:
---
#### 1.1 Esimerkki-skenet
| Skene | LED-väri | Kirkkaus | DMX-kanavat | Käyttö |
| "Aamu" (Morning) | Lämmin valkoinen 3000K | 80% | 1–4 (lämmin valkoinen) | Aamu 06:00–10:00, valmistautuminen |
| "Päivä" (Day) | Viileä valkoinen 5000K | 100% | 5–8 (viileä valkoinen) | Päivä 10:00–16:00, aktiivinen |
| "Ilta" (Evening) | Lämmin 2700K | 60% | 9–12 (lämmin) | Ilta 16:00–22:00, rentoutuminen |
| "Yö" (Night) | Punainen 0% sininen | 10% | 13–16 (punainen) | Yö 22:00–06:00, navigointi, matkustamon |
| "Kalastus" (Fishing) | Vihreä 0% punainen | 80% | 17–20 (vihreä) | Kalastus, ei houkuttele hyönteisiä |
| "Ankkuri" (Anchor) | Sininen | 50% | 21–24 (sininen) | Ankkuri, tunnelma, varoitus (kaikki sininen) |
| "MOB" (Man Overboard) | Punainen nopea vilkku | 100% | 25–28 (punainen vilkku) | MOB-hälytys, kaikki punainen vilkku |
| "Ankkurihälytys" (Anchor Alarm) | Punainen sykkivä | 100% | 29–32 (punainen sykkivä) | Ankkurihälytys (kaikuhälytys) |
| "Vedenalainen" (Underwater) | RGB-väri (valittavissa) | 100% | 33–40 (RGB) | Vedenalaiset valot (yöuinti) |
#### 1.2 Auringon mukaan himmennys (Circadian)
Logiikka (Node-RED):
`javascript
// Node-RED function node: Circadian brightness/color
const now = new Date();
const lat = 60.1699; // Helsinki
const long = 24.9384;
const sun = require('suncalc');
// Laske auringon nousu/lasku
const sunrise = sun.getTimes(now, lat, long).sunrise;
const sunset = sun.getTimes(now, lat, long).sunset;
// Kirkkaus: 0% yöllä, 100% keskipäivällä
let brightness = 0;
if (now >= sunrise && now <= sunset) {
const total = sunset - sunrise;
const elapsed = now - sunrise;
// Sinimuotoinen: 0% auringon nousussa -> 100% keskipäivällä -> 0% auringon laskussa
brightness = Math.sin((elapsed / total) * Math.PI) * 100;
} else {
// Yö: 5% (punainen valo)
brightness = 5;
}
// Värilämpötila: 6500K (keskipäivä) -> 2700K (auringon nousu/lasku)
let kelvin = 6500;
if (now >= sunrise && now <= sunset) {
const total = sunset - sunrise;
const elapsed = now - sunrise;
// Sinimuotoinen: 2700K (nousu) -> 6500K (keskipäivä) -> 2700K (lasku)
kelvin = 2700 + Math.sin((elapsed / total) * Math.PI) * 3800;
} else {
kelvin = 2700; // Yö: lämmin
}
// MQTT publish
msg = {
payload: {
brightness: Math.round(brightness),
kelvin: Math.round(kelvin),
color: { r: kelvin_to_rgb(kelvin).r, g: kelvin_to_rgb(kelvin).g, b: kelvin_to_rgb(kelvin).b }
}
};
return msg;
`
#### 1.3 NMEA 2000 -triggerit
| Triggeri | NMEA PGN | Toiminto |
| Nopeus > 5 kn | 128259 (Speed) | Laita "Päivä" / "Purjehdus"-skene |
| Nopeus = 0 (ankkuri) | 128259 | Laita "Ankkuri"-skene (sininen tunnelma) |
| Syvyys < 2 m | 128267 (Depth) | Varoitus: punainen sykkivä kaikkialla |
| Kaiku-signaali (esim. 50 m vesi) | 128267 | "Kalastus"-skene (vihreä) |
| Tuuli > 20 kn | 130306 (Wind) | "Meri"-skene (valkoinen, kirkas) |
| Auringon lasku (12 min ennen) | 127250 (Heading) | Laita "Auringonlasku"-skene (häivytys) |
| MOB-hälytys | 127233 (MOB) | "MOB"-skene (punainen nopea vilkku) |
Node-RED function node: NMEA-triggeri:
`javascript
// Trigger "Kalastus"-skene kun syvyys 20-100m ja nopeus 0
msg.payload = msg.payload || {};
const depth = msg.payload.depth;
const speed = msg.payload.speed;
if (depth >= 20 && depth <= 100 && speed < 0.5) {
msg.topic = "boat/lighting/scene";
msg.payload = "fishing";
} else if (depth < 2) {
msg.topic = "boat/lighting/scene";
msg.payload = "shallow_warning";
} else if (speed < 0.5) {
msg.topic = "boat/lighting/scene";
msg.payload = "anchor";
}
return msg;
`
#### 2.1 Laitteisto
| Osa | Hinta | Kuvaus |
| Enttec USB-DMK2 | 199 € | USB -> DMX512, 512 kanavaa, 1 universumi |
| Enttec DIN-DMX-2 | 249 € | DIN-kiskoasennus, 2 universumi (1024 kanavaa) |
| Philips Hue Bridge + DMX | 199 € (Bridge) + 50 € (DMX) | ZigBee + DMX-yhdyskäytävä |
| Nicolaudie STICK-DE3 | 299 € | Standalone, Ethernet, kaukosäädin |
| WLED ESP32 + RS485 DMX | 25 € (ESP32) + 5 € (MAX485) | DIY DMX-tuki |
| DMX-kaapeli (XLR-3p) | 2 €/m | Suojattu, 120 Ω, max 300 m |
| DMX-jakaja (Splitter) | 80–200 € | 1 sisään -> 4 ulos, optoeristetty |
#### 2.2 QLC+ konfiguraatio
`xml
<!-- QLC+ workspace: boat_lighting.qxw -->
<Workspace>
<Engine>
<Fixture id="cabin_main" type="Generic_RGBW" name="Cabin Main">
<Channel name="Red" />
<Channel name="Green" />
<Channel name="Blue" />
<Channel name="White" />
<Address>1,1,1,1</Address>
</Fixture>
<Fixture id="cabin_night" type="Generic_RGBW" name="Cabin Night (red)">
<Channel name="Red" />
<Address>5,1,1,1</Address>
</Fixture>
<Fixture id="underwater_port" type="Generic_RGBW" name="Underwater Port">
<Channel name="Red" />
<Channel name="Green" />
<Channel name="Blue" />
<Channel name="White" />
<Address>9,1,1,1</Address>
</Fixture>
<Fixture id="underwater_stbd" type="Generic_RGBW" name="Underwater Starboard">
<Channel name="Red" />
<Channel name="Green" />
<Channel name="Blue" />
<Channel name="White" />
<Address>13,1,1,1</Address>
</Fixture>
</Engine>
<Function id="morning_scene" type="Scene" name="Morning">
<Fixture val="cabin_main">
<Color val="3000K" /> <!-- Lämmin valkoinen -->
<Intensity val="80%" />
</Fixture>
</Function>
<Function id="night_scene" type="Scene" name="Night (red)">
<Fixture val="cabin_night">
<Color val="FF0000" /> <!-- Punainen -->
<Intensity val="10%" />
</Fixture>
</Function>
<Function id="underwater_rainbow" type="Chaser" name="Underwater Rainbow">
<Step><Fixture val="underwater_port"><Color val="FF0000" /><Intensity val="100%" /></Fixture></Step>
<Step><Fixture val="underwater_port"><Color val="00FF00" /><Intensity val="100%" /></Fixture></Step>
<Step><Fixture val="underwater_port"><Color val="0000FF" /><Intensity val="100%" /></Fixture></Step>
<Step><Fixture val="underwater_stbd"><Color val="FF0000" /><Intensity val="100%" /></Fixture></Step>
<Step><Fixture val="underwater_stbd"><Color val="00FF00" /><Intensity val="100%" /></Fixture></Step>
<Step><Fixture val="underwater_stbd"><Color val="0000FF" /><Intensity val="100%" /></Fixture></Step>
<Speed val="2000" /> <!-- 2s per step -->
</Function>
</Workspace>
`
#### 3.1 Periaate
#### 3.2 Laitteet ja hinta
| Laite | Hinta | Toiminto |
| Kumospace Circadian Controller | 299 € | Tukee DMX/DALI/0-10V, automaattinen värilämpötila |
| Bionetic Biolux | 449 € | Täysautomaattinen, sisäänrakennettu astronominen kello, DMX/DALI/0-10V |
| Home Assistant + WLED | 0 € (ohjelmisto) + 25 € (ESP32) | DIY, MQTT-ohjaus, custom skriptit |
| Philips Hue White Ambiance + Bridge | 199 € (Bridge) + 50 €/lamppu | ZigBee, automaattinen värilämpötila (Philips app) |
| LED-nauha CCT (tunable white) | 30–80 €/m | 2700K-6500K, kaksivyöhykkeinen (lämmin + kylmä LED) |
#### 3.3 Home Assistant konfiguraatio (WLED + Circadian)
`yaml
# configuration.yaml
light:
name: "Cabin Circadian"
state_topic: "wled/cabin/state"
command_topic: "wled/cabin"
brightness_state_topic: "wled/cabin/state"
brightness_command_topic: "wled/cabin/brightness"
color_temp_state_topic: "wled/cabin/state"
color_temp_command_topic: "wled/cabin/color_temp"
schema: json
brightness: true
color_mode: color_temp
supported_color_modes: ["color_temp"]
min_mireds: 153 # 6500K
max_mireds: 370 # 2700K
`
Automaatio (Home Assistant):
`yaml
trigger:
minutes: "/5" # every 5 min
action:
target:
entity_id: light.cabin_circadian
data:
brightness: "{{ states('sensor.cabin_circadian_brightness') }}"
color_temp: "{{ states('sensor.cabin_circadian_kelvin') }}"
`
#### 4.1 Teknologiavertailu
| Tyyppi | LED | Teho | Valovirta | Soveltuvuus | Hinta |
| Valkoinen (Single Color) | 12× 5W Cree | 60 W | 6000 lm | Yöuinti, kalastus | 350 €/kpl |
| RGB (3in1) | 12× 5W RGB | 60 W | 4000 lm | Tunnelma, RGB-värit | 450 €/kpl |
| RGBW (4in1) | 12× 5W RGBW | 60 W | 4500 lm | Paras monipuolisuus | 550 €/kpl |
| Sininen (Blue) | 12× 5W Blue | 60 W | 3000 lm (näkyvä vesi) | Houkuttelee kalat | 400 €/kpl |
| High-Intensity (1× 100W) | 1× 100W LED | 100 W | 12000 lm | Ammattilainen, kalastus | 1200 €/kpl |
#### 4.2 Asennus
#### 4.3 Vedenalainen valaistus DMX-ohjauksella
`xml
<!-- QLC+ function: underwater_breathing -->
<Function id="underwater_breathing" type="Chaser" name="Underwater Breathing">
<Step><Fixture val="underwater_port"><Color val="0000FF" /><Intensity val="100%" /></Fixture></Step>
<Step><Fixture val="underwater_stbd"><Color val="0000FF" /><Intensity val="100%" /></Fixture></Step>
<Speed val="4000" /> <!-- 4s per step (breathing effect) -->
</Function>
<Function id="underwater_music" type="Chaser" name="Underwater Music Sync">
<!-- Triggaus audio input: pulse to bass -->
<AudioInput device="system" channel="left" />
<Step><Fixture val="underwater_port"><Intensity val="100%" /></Fixture></Step>
<Speed val="200" /> <!-- 200ms per step (fast pulse) -->
</Function>
`
#### 5.1 Laitteistotarve
| Osa | Hinta |
| ESP32 (Wemos LOLIN D32, 30 pin) | 10 € |
| 5V virtalähde (Mean Well LRS-50-5) | 15 € |
| LED-nauha (WS2812B, 30 LED/m, 5m) | 25 € |
| 3D-tulostettu kotelo (IP65) | 5 € (tulostus) |
| Yhteensä | 55 € |
#### 5.2 WLED konfiguraatio
`json
// WLED konfiguraatio (presets.json)
{
"0": {
"n": "Morning",
"col": [[255, 220, 200]], // 3000K
"bri": 200,
"fx": 0, // Solid
"on": true
},
"1": {
"n": "Day",
"col": [[255, 255, 255]], // 6500K
"bri": 255,
"fx": 0,
"on": true
},
"2": {
"n": "Night (red)",
"col": [[255, 0, 0]],
"bri": 25,
"fx": 0,
"on": true
},
"3": {
"n": "Anchor (blue)",
"col": [[0, 0, 255]],
"bri": 128,
"fx": 0,
"on": true
},
"4": {
"n": "Fishing (green)",
"col": [[0, 255, 0]],
"bri": 200,
"fx": 0,
"on": true
},
"5": {
"n": "MOB (red flash)",
"col": [[255, 0, 0]],
"bri": 255,
"fx": 1, // Blink
"sx": 10, // Speed
"on": true
}
}
`
#### 5.3 MQTT-ohjaus (Node-RED)
`javascript
// WLED MQTT API
msg.topic = wled/cabin/api;
msg.payload = JSON.stringify({
on: true,
bri: 200,
col: [[255, 220, 200]], // 3000K
ps: 0 // Preset 0 = Morning
});
return msg;
`
#### 6.1 Signal K -skripti
`javascript
// /signalk/scripts/lighting_control.js
// Trigger: nopeus, syvyys, MOB -> valaistusskene
const mqtt = require('mqtt');
const client = mqtt.connect('mqtt://localhost:1883');
module.exports = function(sk) {
// Kuuntele nopeutta
sk.on('vessels.self.navigation.speedOverGround', (value) => {
if (value > 5) {
client.publish('boat/lighting/scene', 'sailing');
} else if (value < 0.5) {
client.publish('boat/lighting/scene', 'anchor');
}
});
// Kuuntele syvyyttä
sk.on('vessels.self.environment.depth.belowTransducer', (value) => {
if (value < 2) {
client.publish('boat/lighting/scene', 'shallow_warning');
} else if (value >= 20 && value <= 100) {
client.publish('boat/lighting/scene', 'fishing');
}
});
// Kuuntele MOB-hälytystä
sk.on('vessels.self.navigation.courseOverGroundTrue', (value) => {
// MOB-hälytys erikoistapaus
});
};
`
---
| Ratkaisu | Laitteisto | Ohjelmisto | Hinta (n.) | Soveltuvuus |
| DIY WLED (kabinit) | ESP32 + 5V PSU + LED-nauha 5m | WLED (0 €) | 55 € | Kabinit, kokki, tunnelma |
| DIY WLED + Circadian (Node-RED) | ESP32 + LED-nauha CCT | WLED + Node-RED | 80 € | Sirkadiaaninen, automaattinen |
| DMX512 perus (QLC+) | Enttec USB-DMK2 + DMX-himmentimet + LED-nauhat | QLC+ (0 €) | 350 € | Teatteri-laatu, DMX-skenet |
| DMX512 + Vedenalaiset (4×) | Enttec + 4× vedenalainen RGBW + DMX-himmentimet | QLC+ (0 €) | 2350 € | Täydellinen järjestelmä, RGB-skenet |
| Circadian valmis (Kumospace/Bionetic) | Circadian Controller + LED-nauha CCT | Sisäänrakennettu | 749 € + 80 €/m | Helppo, automaattinen, astronominen kello |
| Philips Hue + DMX | Hue Bridge + Hue lamput + DMX-yhdyskäytävä | Hue app + DMX | 600 € | ZigBee, helppo app, värilämpötila |
| Täydellinen järjestelmä (Pro) | Enttec + DMX-himmentimet + LED-nauhat + vedenalaiset 4× + Circadian Controller | QLC+ + Node-RED + Signal K | 4000 € | Ammattilainen, kaikki skenet, triggaus, etähallinta |
---
Miksi DMX512 eikä pelkkä PWM?
Miksi Circadian-valaistus on tärkeä?
Miksi vedenalaiset LED-valot ovat tärkeitä?
Miten "Triggaus" (NMEA 2000) toimii käytännössä?
vessels.self.environment.depth.belowTransducer)boat/lighting/scene = "fishing")Miten "Musiikki-sync" (Audio) toimii?
Miten "Anchor Alarm" -integraatio toimii?
Miksi WLED on niin suosittu?
Miten "Underwater LED" asennetaan turvallisesti?
---
---
Mallikohtaisen käyttöohjeen saat moottorin valmistajan sivuilta:
Laaja valikoima erikoisosia. Toimitus Suomeen 5-7 arkipäivää. SVB Marine